硬件:正点原子的STM32F407开发板
问题:在正点原子开发板上运行野火的LWIP工程出现错误,ping不通,RJ45接口两个灯都不亮。
- 将野火的LWIP无操作系统的程序在更改好时钟后放到正点原子的开发板上跑还是不行,虽然串口打印初始化完成了,但是PING不通,而且RJ45接口上的绿灯和黄灯都没亮,仔细检查野火和正点原子原理图的差别,发现只有LAN8720A的复位引脚连接的是不通引脚,正点原子连接的是单片机的PD3,而野火的是NRST引脚,而这也就是问题的所在,我以为这个复位引脚不设置没什么问题,然而它直接导致程序用不了,在野火的ETH引脚配置函数中加上如下的PD3复位引脚初始化,并配置为高电平输出时,野火的程序变得正常可以使用了,RJ45接口绿灯常亮,黄灯闪烁,可以ping通了;去掉下面的语句后就出现了前面说的那些问题。
//配置GPIO时钟省略 //配置PD3为推挽输出 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推完输出 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_SetBits( GPIOD, GPIO_Pin_3); |
所以我怀疑是未配置与LAN8720A复位引脚相连的GPIO引脚,而该引脚被LAN8720A拉低了,导致一直处在复位状态,而把该引脚拉高后就正常了
补充:
RJ45接口上有PHY控制的两个灯一个绿灯一个黄灯,一般情况下,绿灯常亮表示与对端网口互联成功;黄灯闪烁表示有数据传输。