我的板子PHY芯片用的是DP83848KSQ,首先打开CubeMX Settings配置一下网口,配置好对应的引脚,Mode选择RMII,Rx Mode选择Interrupt Mode,生成下代码编译看看
报了一堆错误,原因是有一些PHY相关的宏定义未定义
这边我直接去STM32CubeIDE生成的工程里面抄了过来
重新编译报了更多的错
打开board.h,按照注释指示的步骤取消对应的注释
复制cubemx生成的eth.c里的HAL_ETH_MspInit函数到board.c,同时编写phy_reset函数,我暂时留空
再次编译,还是有3个错误
打开RT-Thread Settings,打开使能网络接口设备、使能lwIP堆栈,配置静态ip地址
再次编译,终于编译通过,测试下网络,无法ping通
开启drv_eth.c的DRV_DEBUG
同时把main.c的LOG_D注释掉
再次开启调试
发现网口运行在10Mbps,与EMAC配置的100Mbps速度不符,把EMAC也修改成10M
再次尝试,已经能ping通了