完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32F429通过CubeMx移植Lwip时遇到的网线热插拔ping不通问题解决办法
之前在stm32F107上移植过Lwip,最后可以ping通了,但是发现两个问题: 1.ping通后拔掉网线再插上就ping不通了(这个问题在拔线前自动协商的通信模式变化后会出现)。 2.板子启动的时候不插网线,板子启动后再插入网线后再也无法ping通。 闲话少叙,上过程: 我的phy芯片是DP83848 生成mkd工程 问题1的原因,下图中红圈内的函数没有添加,该函数负责检测phy是否断开或重新连接,并在网线插入后重新启动自动协商,将协商结果重新设置到mac中去,以达到热插拔的效果 原来自动生成的判断函数逻辑有我问题,需要修改下。 问题2原因:下图红色标记的函数在cubemx自动生成的工程里没有,是我自己添加的,个人感觉相当于linux中的ifconfig eth1 up/down命令,加上后拔网线再启动板子后就可ping通了。 下图中执行cube中使能的回调函数,进行mac的重新初始化 回调函数指向了下图函数,有兴趣的可以看看这个函数干了啥 完成以上修改后,裸机轮询模式的lwip可实现热插拔及拔网线启动。 补充:刚用cubemx 生成了freertos 和 lwip工程,同样的问题,同样的改动点,解决热插拔问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
3269 浏览 9 评论
2947 浏览 16 评论
3446 浏览 1 评论
8967 浏览 16 评论
4041 浏览 18 评论
1084浏览 3评论
562浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
556浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2294浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1850浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 14:50 , Processed in 1.219947 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号