STM32单片机遇到重启死机问题怎么办?
许多初学者和写单片机代码的工程师在编写代码的过程中,经常会遇到设备重启、死机的问题,往往遇到这样的问题时,很多人绞尽脑汁无法下手,会出现困惑,到底哪里出了问题?当然经验丰富的工程师一点点的排查,很快也很容易就发现问题点所在,相信遇到此类现象的你也要沉得住气,静下心来重新捋一遍自己建立的工程代码。我也把我在工作中遇到的情况做了如下总结分享给有需要的朋友。
问题排查思路与方向
一、while循环引起的死机现象
代码中除了main主函数中的while循环,是否还有其他地方处在 while ,如果存在,需要好好看一下此处的代码,往往存在 while的地方会让程序出现死循环,程序会卡死在循环当中,出现 死机现象。请逐一排查每一个while。习惯使用STM32CubeMX快速生成代码的朋友需要注意,ST的工程师做出来的代码是面向用户群体的,设置了许多while是便于发现问题点,但真正如何解决问题,是需要负责写单片机代码的工程师具体情况具体分析。
二、 看门狗引起复位重启
看门狗引起复位重启是一种系统保护机制,防止系统因故障或异常行为而陷入无法恢复的状态。其本质是一个定时器,用于监控系统的运行状态。我们经常说的喂狗,就是在规定时间里及时重置看门狗