完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
enc28j60+lwip的例程有时ping一段时间后延时会变很大,需要重新复位板子后才能正常回复正常的Ping延时,请问是什么原因?在网上找到这个答案http://blog.sina.com.cn/s/blog_a4e2465a0102ws39.html 不知道是不是这个问题?但是我更改之后程序会移植在中断中,不切换任务,请问要怎么更改才能正常?@zuozhongkai @发烧友
|
|
相关推荐
7个回答
|
|
在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的接收中断标志位} |
|
|
|
使用了UCOSIII操作系统
|
|
|
|
如果enc28j60的驱动优化不好,在数据量比较大的网络下很容易出现丢包的,不管有没有OS结果都一样
|
|
|
|
ping一段时间之后就会进入接收错误中断,是接收缓冲不足的原因吗?我ping的指令是一个数据包1500字节。
ping 192.168.10.30 -t -l 1500 |
|
|
|
根据你那个帖子去修改下,看看吧
|
|
|
|
ping包1500字节确实太大了,如果这时候网卡接收了其他数据包,那就极有可能出现丢包
我都是按照windows的ping包内容填充32字节,而且程序必须不断的检查接收错误中断,一发现错误就立刻修正接收的读写指针 下面提供我自己的ping包数据 [AppleScript] 纯文本查看 复制代码 static const uint8_t pingMsg[32] ={ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,}; |
|
|
|
牛,我之前这么用就是出问题,改成你这样,测试好一点,现在让它测试1天看看!file:///C:UsersAdministratorAppDataRoamingTencentUsers924401092QQWinTempRichOle3ZL}AOD_X%7CSFFM`75(JOY.png
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2573 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2367 浏览 5 评论
3216 浏览 3 评论
2841 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2795 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
673浏览 1评论
911浏览 0评论
1032浏览 0评论
675浏览 0评论
504浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 03:00 , Processed in 1.164014 second(s), Total 90, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号