单片机产品在工作的时候,上电后是正常工作的,但是工作了几个小时后,偶尔会出现单片机重启的现象。从描述可以判断出,电路在大多数的时间里工作是正常的,但是偶尔会出现单片机重启故障,而电源是稳定的。所以可以判断出硬件电路是正常的。那么问题可能是程序本身的问题或者是有干扰源。
1 可能存在干扰
可能有干扰源存在,而该干扰源可能不是有规律的干扰。单片机一般都具有复位引脚,要么高电平复位,要么低电平复位。比如STM32系列是低电平复位,51单片机是高电平复位。可以将单片机复位引脚飞线,使用示波器捕捉其引脚电平。再发生重启现象时,查看复位引脚上是否出现了复位电平。如果存在复位电平,则检查一下周围其他设备的现象分析一下是否存在干扰的可能性。
2 可能是程序中有看门狗
有些单片机具有看门狗的。如STM32单片机具有独立看门狗IWDG以及窗口看门狗WWDG。首先查看喂狗指令是否正常。尤其是在通讯代码中,为了防止接收超时或者发送超时,在代码中都会加入看门狗或者是定时指令。这时候要分析不是不是存在逻辑错误使代码陷入了死循环触发了看门狗或者定时指令。