CubeMX6.10版本配置LAN8720A调通LWIP

首先,选中ETH, 设置Mode 为RMII

在ETH设置界面找不到PHY的设置界面, 这里是和之前版本的区别

我们需要到Middleware and software packs下, 选中LWIP, 勾选Enabled

platform settings 下,选中L8742


修改PHY Address需要到生成的源码里面进行修改

找到函数LAN8742_Init(lan8742_Object_t *pObj)
添加

    pObj->DevAddr = 0x00; //PHY Address 改为0x00或者0x01

注释掉图片中的printf,可以不用勾选微库

这里还有一个关键的地方,就是LAN8720A,需要有一个ETH_RESET,用来给网口使能,PD3引脚


做好了这些,可以生成代码,进入代码的调试了。
来到代码的部分。首先就是使能前面配置的PD3引脚

void LAN8720_RESET(void)
{
//    HAL_GPIO_WritePin(ETH_PHYAD0_GPIO_Port, ETH_PHYAD0_Pin, GPIO_PIN_RESET);
    HAL_GPIO_WritePin(ETH_RESET_GPIO_Port, ETH_RESET_Pin, GPIO_PIN_RESET);
    HAL_Delay(55);
    HAL_GPIO_WritePin(ETH_RESET_GPIO_Port, ETH_RESET_Pin, GPIO_PIN_SET);
    HAL_Delay(55);
}

添加这个函数,然后main.c里面如下图所示

这样就可以完成ping通了

posted @ 2024-07-13 11:39  yu1741588584  阅读(1458)  评论(0)    收藏  举报