单片机之Watchdog

judy的头像

一、Watchdog介绍

单片机的watchdog一般都有两个,一个是独立看门狗IWDG,一个是窗口看门狗WWDG。以STM32为例,STM32的独立看门狗是一个12位的递减计数器,当计数器的值从某个值一直减到0的时候,系统就会产生一个复位信号,即IWDG_RESET。看门狗功能由VDD电压域供电,在停止模式和待机模式下仍能工作。

关于STM32的独立看门狗的框图如下所示:

单片机之Watchdog

二、Watchdog的工作原理

1、为了防止程序在运行过程中跑飞,加上一个看门狗实时监控程序,如果在规定的时间内没有喂狗,则狗叫会是的单片机复位。

2、如果在规定的时间内,刷新计数器的值,则单片机就不会产生复位,即我们所说的喂狗。

3、STM32的看门狗超时时间(40KHz的输入时钟(LSI))如下表所示:

单片机之Watchdog

三、STM32的IWDG配置

void IWDG_Config(void)
{   
  IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable );
  IWDG_SetPrescaler(IWDG_Prescaler_64);
  IWDG_SetReload(500);
  IWDG_ReloadCounter();
  IWDG_Enable();  
}

转自:Tangledice