在搞W5500动态获取IP地址的时候,遇到过两个坑,第一个是MAC地址的坑,我之前是吧STM32的CPU ID号作为W5500的MAC地址,这样就导致了有些板子不能动态获取IP地址,静态地址能配置成功,但是ping不同,经过各种调试,最终把问题锁定到MAC地址,查阅文档发现,MAC地址第一个字节必须是偶数,此时恍然大悟,将MAC地址第一个字节改为偶数,DHCP瞬间正常。
紧接着第二个问题又出现了,我发现有时DCHP正常,有时还是不能分配到IP地址,经过程序调试与跟踪,终于又找到了第二个问题所在,而这个问题居然是官方例程都存在的,我发现在DHCP_run()函数里面有一个超时函数一直跳不出去,这就导致程序只发送了一次DISCOVER,后面一直没有发送,这就是问题所在,具体解决办法可以参考我发的例子。https://download.csdn.net/download/workmailed/11451514
解决W5500,DHCP获取IP地址失败的问题,移植官方例程需要特别注意!!!
最新推荐文章于 2025-09-18 20:52:10 发布
本文分享了使用W5500模块动态获取IP地址时遇到的两个常见问题及其解决办法。首先,MAC地址的首字节必须为偶数才能正确进行DHCP。其次,DHCP_run()函数中的超时问题可能导致IP分配失败,文章提供了具体的解决代码。
3833

被折叠的 条评论
为什么被折叠?



