你好!
我正在尝试使用
STM32H745(类似于 NUCLEO-H745ZI-Q)在我的板上运行 ping。我必须使用 KSZ8081RNA 而不是标准的 LAN8742。(客户)在其他分支机构的建议,我几乎保留了 LAN8742.c 驱动程序中的所有内容,我只更改了一些寄存器以使初始化成功(我只需要更改
LAN8742_GetLinkState 函数)。我可以读写 KSZ8081RNA 寄存器。我在调试连接/断开以太网电缆时看到链接更改。
但是ping数据包(ICMP)还是没有传过来。
由于描述符heth->RxDescList.RxDesc的值,程序未通过
/* Check if descriptor is not owned by DMA */检查(文件
stm32h7xx_hal_et.c中的HAL_ETH_Read Data第 1063 行) 。它等于 0x81000000。在另一个工作项目中,它等于 0x3401003***。

很可能,我没有完全正确地初始化,因为同一项目在更改之前在 NUCLEO-H745ZI-Q 上运行。我不完全理解如何通过 DMA 接收数据包。但是除了
LAN8742_Init函数我还应该改变什么?