您现在的位置: 爱51代码网 >> 范文 >> 文章正文
W5300 UDP 接收不到数据

dsp控制W5300使用UDP与PC收发数据。W5300的UDP发送没问题,但无法接收PC传来的UDP报文。代码如下。
在CCS4.2里调试,正常连续运行时rxlen(接收缓冲区收到字符长度)始终为0;
如果在 "rxlen = 0x0fff & getSn_RX_RSR(s);"前加断点,rxlen是有接收值的,且接收字符个数也正确。
简单说就是:
dsp连续运行,getSn_SSR(s)返回0;
dsp单步运行,getSn_SSR(s)才有返回值。
这是什么原因,请大侠给分析一下。

  socket(s, Sn_MR_UDP, port, mode);
   switch((0x00ff & getSn_SSR(s)))
   {
   case SOCK_UDP:
     rxlen = 0x0fff & getSn_RX_RSR(s);
     if(rxlen > 0)
     {
       rxlen = recvfrom(s, (uint8*)rxbuf, rxlen, gw, &rxport);
     }
     if(len !=sendto(s,p,len,gw,port))  // send the data to the destination
     {  }
  break;
...........
}
你的getSn_SSR()函数以什么样的频率被调用阿?
接收方式是轮询还是中断?
是说加个断点停一下,然后继续执行就对了?那你可以在这里加个延时,是不是芯片反应速度慢
rxlen = 0x0fff & getSn_RX_RSR(s);  连续执行是这里返回0
查询方式读寄存器经常死机,会是字长的原因么?
改用中断方式,效果好些。

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    redhat 2.6 (santigo 5.6) vsftp
    shell如何实现自动填写操作执行下
    linux shell 文件配置sh:color:
    shell script语法一定要加path吗
    SecureCRT如何访问虚拟机vmWare中
    C#如何读取WINDOWS的放大系数
    cximge的图如何存入数据库并提取
    DBGRID控件显示查询结果文本类型
    TChart控件如何把表中右边的系列
    fastreport提示没有找到fr_class
    C#如何读取WINDOWS的放大系数
    cximge的图如何存入数据库并提取
    linux下编译faac及faad2提示 rec
    accept无法获取客户端ip
    TClientDataSet如何避免多人更新
    如何用delphi代码修改XML节点
    vc++ pvoid *用delphi怎么表达
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    找不到mach/gpio.h
    STC12C5A60S2可以设计4路pwm
    write_data_ds1302’missing
    USB HID 读写STM32数据失败
    don't know how to make
    clean sysgen时出现的error 
    430单片机和GSM模块相连接时
    wince下如何使用webclient类
    飞思卡尔mc9s12可以发送数据
    Directsound不能控制声卡左右
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |