OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3900|回复: 2

stm32F4探索板+8720,直接连主机可以,接路由器过不了初始化怎么回事?

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-9-5
在线时间
1 小时
发表于 2019-9-6 13:53:39 | 显示全部楼层 |阅读模式
1金钱
硬件:stm32f4探索板,LAB8720A
原子哥的网络通信实验例程
开发板接主机,网口灯亮,初始化可以通过
开发板接路由器,网口灯不亮,
程序执行如下:
main:
while(lwip_comm_init()!=0)
        {
                LCD_ShowString(30,110,200,16,16,"lwIP Init failed!");
                delay_ms(1200);
                LCD_Fill(30,110,230,110+16,WHITE);//清除显示
                LCD_ShowString(30,110,200,16,16,"Retrying...");  
        }
一直死循环在这里,进去lwip_comm_init()
发现是   if(LAN8720_Init())return 2;                        这里初始化LAN8720失败了,返回2

然后进 LAN8720_Init()
发现是  rval=ETH_MACDMA_Config();  返回了 ETH_ERROR  失败

再进ETH_MACDMA_Config()
是rval=ETH_Init(&ETH_InitStructure,LAN8720_PHY_ADDRESS);                返回了ETH_ERROR

进ETH_Init()   中下面这段
if(ETH_InitStruct->ETH_AutoNegotiation != ETH_AutoNegotiation_Disable)
  {  
    /* We wait for linked status... */
    do
    {
      timeout++;
    } while (!(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;
    }


while  这里超时了。


这个问题大约应该是什么问题 ?   怎样解决 ?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2019-9-13 02:57:05 | 显示全部楼层
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2019-9-16
在线时间
15 小时
发表于 2019-11-12 16:59:06 | 显示全部楼层
我跟你相反的 我是连接路由通了,但是网线直连PC通不了,能不能交换下程序?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 17:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表