上两篇博客讲了STM32CubeMX的一个版本问题还有硬件需要复位的问题,当你把这两个问题解决之后,你会发现程序烧入板子之后,以太网接口也亮了,可是当你去ping开发板时,板子与电脑之间依然连接不上,无法ping通。在调试了软件数遍之后,发现程序的逻辑并未出现什么毛病。从程序的方面检查,以太网的收发函数均为正常状态,收发数据也是正确的,可是就是无法访问到目标主机。调适了很长时间均无法发现问题,接着我们还是从硬件着手,检查发现了还是硬件的配置上出现了问题。由于生产板子的厂家有很多,虽然cpu芯片为同一型号,但是引脚接口可能改变,所以由于这个原因LAN8720这个芯片依然无法正常工作。希望大家以后在用STM32Cubemx这个开发工具的时候,还是要对照着自己所使用的开发板的原理图来进行仔细地配置,具体做法如下图所示:
上面这张图是在STM32CubeMX上,当你选择好你需要的组件之后,软件帮你生成的引脚配置,大家可以清晰地看到ETH_TX_EN对应的是PB11,ETH_TXD1对应的是PB13,ETH_TXD0对应的是PB12 。下面再来看看开发板原理图对应的引脚,如下图所示:
大家可以很清晰的看到,这款开发板,RMII_TX_EN(ETH_TX_EN)对应是PG11,RMII_TXD0(ETH_TXD0)对应的是PG13,RMII_TXD1(ETH_TXD1)对应的是PG14,所以要作如下修改,如图所示:
除了这以外还有一点就是PHY的地址得改,如下图所示:
PHY地址也是由你的硬件所决定的。
把这两点改完之后,大家就可以看到胜利的曙光了,我们再来ping,就会有如下图现象了
说明lwip协议栈已建立好了,大家就可以在这个基础上做一些tcp层的开发了。
版权声明:本文为alanxinge原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。