<strong>一、Watchdog介绍</strong>
单片机的watchdog一般都有两个,一个是独立看门狗IWDG,一个是窗口看门狗WWDG。以STM32为例,STM32的独立看门狗是一个12位的递减计数器,当计数器的值从某个值一直减到0的时候,系统就会产生一个复位信号,即IWDG_RESET。看门狗功能由VDD电压域供电,在停止模式和待机模式下仍能工作。
关于STM32的独立看门狗的框图如下所示:
<center><img src="http://mcu.eetrend.com/files/2018-07/博客/100012308-43723-00.png" alt="单片机之Watchdog"></center>
<strong>二、Watchdog的工作原理</strong>
1、为了防止程序在运行过程中跑飞,加上一个看门狗实时监控程序,如果在规定的时间内没有喂狗,则狗叫会是的单片机复位。
2、如果在规定的时间内,刷新计数器的值,则单片机就不会产生复位,即我们所说的喂狗。
3、STM32的看门狗超时时间(40KHz的输入时钟(LSI))如下表所示:
<center><img src="http://mcu.eetrend.com/files/2018-07/博客/100012308-43724-01.png" alt="单片机之Watchdog"></center>
<strong>三、STM32的IWDG配置</strong>
<pre style="overflow-x:auto; background-color:#e9e9e9;">void IWDG_Config(void)
{
IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable );
IWDG_SetPrescaler(IWDG_Prescaler_64);
IWDG_SetReload(500);
IWDG_ReloadCounter();
IWDG_Enable();
}</pre>
转自:<a href="http://www.cnblogs.com/Tangledice/p/7663249.html">Tangledice</a>