STM32踩坑:while(ETH_GetSoftwareResetStatus()==SET) 死循环

STM32的ETH模块初始化while(ETH_GetSoftwareResetStatus()==SET) 陷入死循环

因为实际项目需要,所以使用了STM32F407芯片的ETH功能,在调试版上能够很顺利的就运行项目,但是将程序挂载至测试板上面,程序跑不起来,最开始以为是单片机芯片坏了,将部分代码屏蔽以后,发现程序是可以运行的,Debug了一下,发现程序死在了 while(ETH_GetSoftwareResetStatus()==SET) 这一环,最开始是以为 PHY 芯片虚焊,重新处理了几遍后,发现还是有问题,用示波器打了一下晶振,晶振都是起振了的,没有问题,然后换了一颗 PHY 芯片,发现还是有问题,Debug 还是卡死在 while(ETH_GetSoftwareResetStatus()==SET) 这一环,在网上查了查相关资料,说的是 PHY 芯片存在虚焊,找了半天原因,发现没问题,然后把问题定位在单片机上,用示波器测试了时钟和信号,发现没有问题,最后无意中发现板子跑起来了,ping 了一下,ping 不通,复位了一下板子,程序又挂了,再次用示波器碰了碰 STM32 芯片的 ETH 时钟引脚,程序有跑起来了,最终定位 STM32 芯片 ETH 的时钟引脚虚焊,重新处理了一下,就 OK 啦。
在这里插入图片描述

学习分享,一起成长!以上为小编的学习经验分享,若存在不当之处,请批评指正!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是混子我怕谁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值