跳转到主要内容

单片机之Watchdog

judy 提交于

<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&quot; 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&quot; 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&gt;