|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
ErrStatus enet_software_reset(void)
{
uint32_t timeout = 0U;
ErrStatus enet_state = ERROR;
uint32_t dma_flag;
uint32_t test_reg1, test_reg2;
/* reset all core internal registers located in CLK_TX and CLK_RX */
test_reg1 = ENET_DMA_BCTL_SWR;
test_reg2 = ENET_DMA_BCTL;
ENET_DMA_BCTL |= ENET_DMA_BCTL_SWR;
test_reg2= ENET_DMA_BCTL;
/* wait for reset operation complete */
do{
dma_flag = (ENET_DMA_BCTL & ENET_DMA_BCTL_SWR);
timeout++;
}while((RESET != dma_flag) && (ENET_DELAY_TO != timeout));
/* reset operation complete */
if(RESET == (ENET_DMA_BCTL & ENET_DMA_BCTL_SWR)){
enet_state = SUCCESS;
}
return enet_state;
}
ENET_DMA_BCTL_SWR寄存器总是为不能清0,导致初始化不成功。 |
|