完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
尝试移植LWIP+FREERTOS的时候出现了如下问题,请各位大佬帮忙看看是哪里的问题,我用了FreeRTOS+LWIP做ModbusTCP时出现了链接出现通信12次然后通信中断,并且再也没法ping 通的问题,表现的现象是进不去以太网中断,导致 ethernetif_input()接收不到数据
移植过程是这样的:(STM32F407+DP83848) 1:首先移植RTOS+固件库,移植成功,并且跑了几个串口通信的任务,测试大概两三天的样子,并没有出现问题。 2:移植LWIP1.4.1 (从ST官网下载的那个网页的例程,修改引脚定义后跑在板子上没问题,确认硬件没问题) 3:将ST官网的LWIP1.4.1 的例子(关于LWIP的部分)移植到步骤1 的FreeRTOS 系统的工程里面,只是添加LWIP初始化的任务,并没有调用任何接口的情况下可以Ping 通 而且长时间Ping 也没问题。 4:调用一个连接,编写函数,将受到的数据发送回去,出现了通信12次就没法在通信的问题(发12次,收12次,通信数据包无论长短,都是12次)而且ping 也ping 不通了。 5:自己写了Modbus-TCP的代码,也是同样的通信12次,也没法通信了, 请教各位大佬,有遇到过类似的情况吗? |
|
相关推荐
1个回答
|
|
这个问题可能是由于网络堆栈(LWIP)没有正确配置或初始化导致的。下面是可能的解决方案:
1. 检查你的LWIP配置是否正确。确保正确设置网络接口(如MAC地址、IP地址、子网掩码等)和通信参数(如端口号、超时时间等)。 2. 确保正确初始化LWIP堆栈。请检查网络接口初始化函数(如ethernetif_init)是否正确调用,并且正确设置ETH网卡。 3. 检查LWIP的任务优先级配置。确保LWIP任务的优先级高于其他任务,以确保网络数据的及时处理。 4. 检查网络接收中断是否正确设置。确保接收中断在数据到达时被正确触发,并且数据正确传递给LWIP堆栈进行处理。 5. 检查堆栈初始化后是否存在任何错误或警告。通过仔细检查初始化过程中的日志或调试信息,可以找到可能的问题。 6. 检查硬件连接是否正确。确保物理层连接(如网线)和PHY芯片(如DP83848)与STM32芯片正确连接,并且没有任何故障。 如果以上步骤没有解决问题,建议使用调试工具(如OpenOCD或JTAG)进行更详细的调试,以确定具体问题所在。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1641 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1562 浏览 1 评论
988 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
691 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1608 浏览 2 评论
1869浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
655浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
525浏览 3评论
541浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
514浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 10:11 , Processed in 0.748019 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号