请教:STM32+enc28j60+uip PING通 但是测试UDP收发数据不通 ??

[复制链接]
8983|9
 楼主| denike 发表于 2010-3-11 20:27 | 显示全部楼层 |阅读模式
请教:STM32+enc28j60+uip PING通 但是测试UDP收发数据不通  
写了一个基于uip的UDP收发数据的测试程序,其功能是:目标板接收到PC发来的以太网数据后返回接收到的数据给PC,可以PING通,但是收发不了数据,不知道是不是uip的配置弄错,还是其它什么原因,大家帮帮忙。UDP 初始化 和UDP回调函数如下(不知道是不是这样写):
u8_t data_buf[200]={0},data_len=0,rec_ok_flag=0;

static  struct uip_udp_conn *conn_tftp=NULL;
void example1_init(void)
{
//uip_listen(HTONS(1234));   //TCP  
u16_t any[2];
   //远程IP为192.168.1.200
uip_ipaddr(any, 192, 168, 1, 200);
if(conn_tftp != NULL)  
{
uip_udp_remove(conn_tftp);//如果连接已经建立,则删除之
}
conn_tftp = uip_udp_new(any, HTONS(1000)); //建立到远程ipaddr,端口为1000的连接
if(conn_tftp != NULL)
{
//绑定本地端口为  1000
conn_tftp->lport = HTONS(1000);
}

}


void example1_app(void)
{
unsigned char i ;
u8_t cmd_data[8]={0x55,0x06,0x2B,0x00,0x00,0x00,0x00,0x87};
if(uip_connected())  
  {
       uip_send("UART TO LAN V0.1\n",17);
      }
if(uip_newdata() || uip_rexmit() )
  {
       for(i=0;i<uip_datalen();i++)
          {
          data_buf[i]=*uip_appdata++;
          }
   data_len=uip_datalen();
   rec_ok_flag=1;
  }
if (uip_poll())
    {
     if (rec_ok_flag)
    {
     uip_send(data_buf, data_len);
rec_ok_flag=0;
    }
  else
  {
   uip_send(cmd_data, 8);
  }
}
}
void tcp_appcall(void)
{

}

小弟刚接触以太网不是很懂,不知道UIP哪里配置错,知道原因的朋友帮帮忙,谢谢!附上代码,帮忙看看
udp数据没返回.jpg
UDP数据没返回2.jpg

uip_0_9.rar

1.47 MB, 下载次数: 294

uip_0_9.rar

1.47 MB, 下载次数: 209

hsbjb 发表于 2010-3-11 22:04 | 显示全部楼层
这块不是很清楚,帮顶下,一起学习
 楼主| denike 发表于 2010-3-11 22:33 | 显示全部楼层
顶下!知道的朋友帮帮忙解决啦:)
 楼主| denike 发表于 2010-3-12 14:18 | 显示全部楼层
不要沉,继续顶
 楼主| denike 发表于 2010-3-12 14:18 | 显示全部楼层
不要沉,继续顶
IJK 发表于 2010-3-12 16:44 | 显示全部楼层
ENC28J60以太网控制器是Microchip的产品,恐怕ST的人不熟。
去PIC的地方问可能更好。
 楼主| denike 发表于 2010-3-12 20:10 | 显示全部楼层
ljc16888888 发表于 2012-8-26 16:13 | 显示全部楼层
我也遇到这种情况,求解释!
wdliming 发表于 2013-1-4 16:12 | 显示全部楼层
谢谢!
1021256354 发表于 2015-6-8 11:10 | 显示全部楼层
我这ping都不通,不知道怎么回事???
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

235

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部