求助:DP83848网络初始化通不过

2019-07-20 02:00发布

大家好!
最近将原子哥的基于ucosii的网络例子程序移植到自己的板子上。我的板子上用的是DP83848,网络初始化有时能通过,有时通不过,真的很头疼。
单步调试了一下,发现初始化通不过时候,是卡在HAL_ETH_Init()函数的290行,如下述,查看了下DP83848的datasheet,问题确定在链路没有建立上。这是怎么回事呢?麻烦大家提供一些思路吧。先谢谢啦!!!
   do
    {
      HAL_ETH_ReadPHYRegister(heth, PHY_BSR, &phyreg);

      /* Check for the Timeout */
      if((HAL_GetTick() - tickstart ) > LINKED_STATE_TIMEOUT_VALUE)
      {
        /* In case of write timeout */
        err = ETH_ERROR;

        /* Config MAC and DMA */
        ETH_MACDMAConfig(heth, err);

        heth->State= HAL_ETH_STATE_READY;

        /* Process Unlocked */
        __HAL_UNLOCK(heth);

        return HAL_TIMEOUT;
      }
    } while (((phyreg & PHY_LINKED_STATUS) != PHY_LINKED_STATUS));


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。