STM32
直播中

吕钢格

7年用户 979经验值
私信 关注
[问答]

LAN8742如何修改源文件和头文件,匹配LAN8720A芯片呢?

板子的MCU芯片选择STM32H743和LAN8720A。我使用cubemx使能ETH和lwip,但是系统默认是LAN8742。软件生成的驱动代码low_level_init()函数中调用的是LAN8742_RegisterBusIO( LAN8742,  LAN8742_IOCtx)和LAN8742_Init( LAN8742)。如何修改函数的参数去匹配LAN8720A呢?

回帖(2)

张青梅

2024-3-26 17:48:36
8742和8720可以通用的呀
举报

申换换

2024-3-26 18:08:16
若要修改源文件和头文件,以匹配LAN8720A芯片,则需要按照以下步骤进行操作:

1. 打开Cubemx,并选择正确的板子(MCU芯片选择STM32H743)。
2. 使能ETH和lwIP,并生成代码。
3. 打开生成的代码文件,找到ethernetif.c文件和ethernetif.h文件。
4. 在ethernetif.c文件中,找到名为`low_level_init()`的函数。
5. 在该函数中,找到以下行:
```
LAN8742_RegisterBusIO( LAN8742,  LAN8742_IOCtx);
LAN8742_Init( LAN8742);
```
6. 将这里的`LAN8742`和`LAN8742_IOCtx`替换为`LAN8720A`和`LAN8720A_IOCtx`。
7. 打开ethernetif.h文件,找到以下行:
```
/* Exported functions -------------------------------------------------------*/
err_t ethernetif_init(struct netif *netif);
```
8. 在该行的下方添加以下声明:
```
void LAN8720A_RegisterBusIO(LAN8720A_Object_t *pObj, LAN8720A_IOCtx_t *pIO);
void LAN8720A_Init(LAN8720A_Object_t *pObj);
```
9. 保存并关闭文件。
10. 现在,您可以使用`LAN8720A_RegisterBusIO()`和`LAN8720A_Init()`函数来初始化和配置LAN8720A芯片。

请注意,上述步骤仅适用于将LAN8720A芯片与Cubemx生成的代码配合使用。您还需要根据您的硬件连接配置正确的引脚和时钟设置。如果您的硬件连接与Cubemx生成的代码不匹配,您还需要自行调整代码以适应您的硬件配置。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分