野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9470|回复: 6

关于F103ISO开发板W5500的UDP协议的问题(新人发帖)

[复制链接]
发表于 2016-9-1 16:38:46 | 显示全部楼层 |阅读模式
我按照《W5500网络扩展板教程》学习UDP协议。发现不太好使,电脑接收不到信息。按照所有操作步骤进行,也研究了程序。找不出问题来,现在求救各位。

电脑IP设置

电脑IP设置

问题现象

问题现象

电脑和开发板网线连接状态

电脑和开发板网线连接状态
回复

使用道具 举报

 楼主| 发表于 2016-9-1 16:42:25 | 显示全部楼层
问题就是,通过网络助手。发送数据。电脑没有回复数据。
具体程序:
uint8  remote_ip[4]={192,168,1,102};                                                                                       
uint16 remote_port=5000;               

自己为了测试程序运行到哪一步,增加输出语句。

void do_udp(void)
{                                                              
        uint16 len=0;
        uint8 buff[2048];                                                          /*定义一个2KB的缓存*/       
        switch(getSn_SR(SOCK_UDPS))                                                /*获取socket的状态*/
        {       
                case SOCK_CLOSED:                                                        /*socket处于关闭状态*/
                        socket(SOCK_UDPS,Sn_MR_UDP,local_port,0);   
        printf("  W5500接收计算机发送来的数据2");                        /*初始化socket*/
                  break;
               
                case SOCK_UDP:                                                                             /*socket初始化完成*/
                        delay_ms(10);
                        if(getSn_IR(SOCK_UDPS) & Sn_IR_RECV)
                        {
                                       
                                setSn_IR(SOCK_UDPS, Sn_IR_RECV);                                     /*清接收中断*/
                                printf("  W5500接收计算机发送来的数据4");               
                        }
                        len=getSn_RX_RSR(SOCK_UDPS);
                        //if((len=getSn_RX_RSR(SOCK_UDPS))>0)   
                                if(len>0)/*接收到数据*/
                        {
                                        printf("  W5500接收计算机发送来的数据5");               
                                recvfrom(SOCK_UDPS,buff, len, remote_ip,&remote_port);               /*W5500接收计算机发送来的数据*/
                                printf("  W5500接收计算机发送来的数据6");       
                        //        buff[len-8]=0x00;                                                    /*添加字符串结束符*/
                                buff[len]=0x00;
                          printf("%s\r\n",buff);                                               /*打印接收缓存*/
                        //        sendto(SOCK_UDPS,buff,len-8, remote_ip, remote_port);                /*W5500把接收到的数据发送给Remote*/
                                sendto(SOCK_UDPS,buff,len, remote_ip, remote_port);
                        }
                        break;
        }

}

                                               
回复 支持 反对

使用道具 举报

发表于 2016-9-1 17:44:17 | 显示全部楼层
本地ip是你电脑的ip地址,目标主机的地址是开发析的ip,你的开发板地址是192.168.1.88吧?把上位机的目标地址改下
回复 支持 反对

使用道具 举报

发表于 2016-9-1 17:57:19 | 显示全部楼层
就是几个ip的对应问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-4 12:59:40 | 显示全部楼层
flyleaf 发表于 2016-9-1 17:44
本地ip是你电脑的ip地址,目标主机的地址是开发析的ip,你的开发板地址是192.168.1.88吧?把上位机的目标地 ...

谢谢了,明白了。之前一直认为程序的问题。看了半天没出来。原来还是配置的问题。学习了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-4 13:00:08 | 显示全部楼层

嗯哪,改后就好了。
回复 支持 反对

使用道具 举报

发表于 2017-12-28 18:25:44 | 显示全部楼层
w5500代理商炜世科技,欢迎前来咨询: 0755-8656 8556,技术支持邮箱:support@wisioe.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-3-19 13:30 , Processed in 0.032714 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表