使用LAN8720,STM32F4程序初始化出问题,求助,谢谢!

2019-07-20 22:39发布

我用STM32F4及LAN8720按照原子的电路,自己画的电路板,用例程《网络通信实验》的TCP Client测试程序,在学习班上云行正常,在我的板上运行,程序运行到:“ while (ETH_GetSoftwareResetStatus() == SET);//等待软件重启网络完成 ”出现死循环,不知什么原因,请大师指点。谢谢。下面是原子的例程程序。

u8 ETH_MACDMA_Config(void)
{
 u8 rval;
 ETH_InitTypeDef ETH_InitStructure;
 
 //使能以太网时钟
 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_ETH_MAC | RCC_AHB1Periph_ETH_MAC_Tx |RCC_AHB1Periph_ETH_MAC_Rx, ENABLE);
                       
 ETH_DeInit();          //AHB总线重启以太网
 ETH_SoftwareReset();        //软件重启网络
 while (ETH_GetSoftwareResetStatus() == SET);//等待软件重启网络完成   !!这里出问题了
 ETH_StructInit(&ETH_InitStructure);    //初始化网络为默认值 

FlagStatus ETH_GetSoftwareResetStatus(void)
{
  FlagStatus bitstatus = RESET;
  if((ETH->DMABMR & ETH_DMABMR_SR) != (uint32_t)RESET)
  {
    bitstatus = SET;
  }
  else
  {
    bitstatus = RESET;
  }
  return bitstatus;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。