本帖最后由 yuliang33 于 2022-4-22 19:59 编辑
使用STM32CUBEMX生成代码ping不通、ping不通、ping不通。查看代码检查了三天了,还是没发现问题。。。。。
电路使用野火的开发板,电路原理图如下:
使用STM32CUBEMX 6.5配置
PHY根据手册已修改寄存器地址,查看程序后发现STM32CUBEMX 6.5不需要配置PYH_ADD值,程序能自动识别地址(初始化时会使用for循环逐一读取来确定ADD)
使用的两个DMA是用来传输串口的接受和发送的。
生成的代码略有修改,在static void low_level_init(struct netif *netif)函数中增加LAN8742_StartAutoNego(&LAN8742);PS:没有这一条网线插入没有反应
在main函数while(1)中增加MX_LWIP_Process();其他地方都没有修改,如STM32cubeMX增加freeRTOS,效果也如下。
现在的结果:
LAN8720寄存器都能正常读取,网线插入、拔出能够识别,网口灯也亮的正常,但是就是ping不通。DUG发现ETH_IRQHandler();这个函数不能进入,代码中已经打开中断了,配置的这一块都检查了遍,也没找到问题。
移植正点原子和野火的LWIP程序,都能正常通信。
大佬们!求助!求助!求助! |