你好 ,
我有
STM32H750x MCU。
我想知道为什么 ETH DMAMR->SWR(软件复位位)仍然是 ALWAYS SET?
我知道甚至 HAL 驱动程序也在尝试对 ETH DMA 和 MAC 进行软件重置。我知道我应该为 HCLK 启用一个稳定的时钟。我还打开了 ETH 接口的时钟,ETH 的 CLOCK 设置已被调用,使用
__HAL_RCC_ETH1MAC_CLK_ENABLE();
__HAL_RCC_ETH1TX_CLK_ENABLE();
__HAL_RCC_ETH1RX_CLK_ENABLE();
命令已设置,所有 RMII GPIO 也已设置,在 SYSCFG 寄存器中已选择 RMII 接口,SWR 位仍已设置,如果我执行以下操作,我唯一可以清除它的是:
__HAL_RCC_ETH1MAC_FORCE_RESET();
但在此之后我必须再次使用
__HAL_RCC_ETH1MAC_RELEASE_RESET();
命令,但 SWR 位仍然立即切换回 SET 状态,这就是为什么 ETH DMA 不开始工作的原因。
我如何调试或检查为什么 SWR 位总是 ON?
谢谢,彼得