WDT可以理解为一种监控型定时器,其独立于系统单独工作,如果该定时器溢出时,则系统复位;因此为了保证系统的正常运行,需要在该定时器每次溢出前,对其计数器执行清0操作。根据这一概念,在实际的应用中又衍生出:硬件看门狗与软件看门狗。硬件看门狗可细分为外部WDT及内部WDT(嵌入MCU内部)。而软件看门狗一般采用系统中的一个定时器作为WDT,将该定时器设置为最高优先级,并在系统初始化时对该定时器进行初始化,如果系统正常运行,则在相应位置对其计数器进行清0。如果系统在某处卡死/跑飞,该定时器将溢出,并将进入中断,最后在定时器中断中执行一些复位操作,使系统恢复正常的工作状态。