本文主要是介绍STM32 调试掉电重启异常问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述:
同样的硬件和同样的软件工程,新批次遇到了产品重新上电后通信失败的问题。上电烧录程序一切正常,每次掉电必然复现故障。
排除过程:
1.怀疑 BOOT0 接触异常
2.怀疑NRST接触异常
验证后,均排除。
3.使用IO翻转,测试程序上电后有没有运行起来,发现是运行的。
4.使用主动发送,用示波器比较掉电前后通信的波形,发现是时钟改变了。
5.检查相关代码,怀疑HSE启动失败,由于通信异常,无法使用断言,在相关处翻转IO口来标识HSE启动是否失败。发现果然掉电再重启,会启动失败。
6.最后通过延长等待HSE启动成功的时间常数,或直接使用内部HSI时钟来规避。
发现延长等待时间后,一切正常了。
最终问题应该是本批次的芯片HSE稳定时间比较久造成的故障,同时程序没有对HSE启动失败做备用方案,导致了上述故障。
这篇关于STM32 调试掉电重启异常问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!