STM32F4+DP83848的问题

2019-07-20 17:24发布

程序卡在ETH_MACDMA_Config()里面,经过调试发现EthInitStatus = ETH_Init(&ETH_InitStructure, DP83848_PHY_ADDRESS);这条语句执行完后的EthInitStatus = 0;说明没有初始化成功。继续调试进入ETH_Init(&ETH_InitStructure, DP83848_PHY_ADDRESS);,发现:
   do
    {
      timeout++;
    } while (!((tmp=ETH_ReadPHYRegister(PHYAddress, PHY_BSR)) & PHY_Linked_Status) && (timeout < PHY_READ_TO));

    /* Return ERROR in case of timeout */
    if(timeout == PHY_READ_TO)
    {
      return ETH_ERROR;
    }

tmp = 0x7849,(tmp是自己定义的一个变量用于调试的),经过查询相关资料,正常BSR的值为0x786d,仔细对照BSR的各个位的定义,发现第二位LinkStatus = 0 ,这就表示连接link is down
同时第5位的Auto-Negotiate Complete = 0 ,这就表示auto-negotiate process not completed,说明自动协商没有成功。


初步诊断为连接问题,检查硬件连接暂时没有发现问题。希望高手能指导一二,万分感谢!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
wan0807
1楼-- · 2019-07-20 19:35
有没有兄弟遇到类似的问题呀~求赐教~小弟感激不尽~
zmingwang
2楼-- · 2019-07-20 20:14
 精彩回答 2  元偷偷看……
Lone
3楼-- · 2019-07-20 23:16
 精彩回答 2  元偷偷看……

一周热门 更多>