目录
前言
单片机程序运行过程中,可能会遇到各种意外情况,导致程序运行出现故障。对于这些由于意外随机导致的故障,开发者不可能进行针对性的解决,而且这些意外情况大概率可以通过单片机复位(reset)得到解决。看门狗(WatchDog)就是在程序发生意外故障时,对程序进行复位的一个部件。
其实看门狗的本质就是一个计数器\定时器(timer)。以STM32的看门狗为例:其中的看门狗定时器(WatchDog Timer)具有向下计数的特性,定时器开始递减,如果定时器的值递减到0,则定时器触发单片机复位(这个动作一般叫看门狗超时复位)。而在程序正常运行时,看门狗定时器肯定不能reset单片机,所以在看门狗定时器递减到0之前,需要把看门狗定时器的值重新置为初始值(65535),然后看门狗定时器(WDT)重新递减计数,这个重置WDT值的动作就叫喂狗。喂狗的动作也需要函数才能完成(这个函数可以叫喂狗函数,需要周期性执行)