天线|RF射频
直播中

毛微

7年用户 216经验值
私信 关注
[问答]

为什么enc28j60+lwip的例程有时ping一段时间后延时很大?

enc28j60+lwip的例程有时ping一段时间后延时会变很大,需要重新复位板子后才能正常回复正常的Ping延时,请问是什么原因?在网上找到这个答案http://blog.sina.com.cn/s/blog_a4e2465a0102ws39.html    不知道是不是这个问题?但是我更改之后程序会移植在中断中,不切换任务,请问要怎么更改才能正常?@zuozhongkai @发烧友

回帖(7)

石根厚

2019-9-2 08:07:42
在ENC28J60中断处理函数中的接收中断部分改成下面这样就好了[C] 纯文本查看 复制代码
if(status&EIR_PKTIF)//接收到数据,处理数据{while((packetnum=ENC28J60_Read(EPKTCNT))!=0){lwip_pkt_handle();//printf("%drn",packetnum);}ENC28J60_Write_Op(ENC28J60_BIT_FIELD_CLR,EIR,EIR_PKTIF);//清除ENC28J60的接收中断标志位}
举报

李英健

2019-9-2 08:23:17
使用了UCOSIII操作系统
举报

王茁珐

2019-9-2 08:36:11
如果enc28j60的驱动优化不好,在数据量比较大的网络下很容易出现丢包的,不管有没有OS结果都一样
举报

潘福乔

2019-9-2 08:47:33
ping一段时间之后就会进入接收错误中断,是接收缓冲不足的原因吗?我ping的指令是一个数据包1500字节。
ping 192.168.10.30 -t -l 1500
举报

更多回帖

发帖
×
20
完善资料,
赚取积分