看门狗
Watch Dog
一、看门狗是什么?
第一次听到看门狗还是比较新奇的,当时对这个看门狗没有概念,现在看来这个看门狗英译
过来有点怪怪的,原意应为监视,监管的狗,本质上是一个定时器电路,用来监控系统运行状态。
在STM32F103中具有两个看门狗,一个独立看门狗一个窗口看门狗。
二、看门狗基本使用
1.常用寄存器&框图
独立看门狗框图
框图中的寄存器及为重点寄存器
IWDG_KR 键值寄存器,写入0x5555表示允许访问PRI和RLR寄存器,写入0xCCCC为启动看门狗,写入0xAAAA表示喂狗,即重装在数值。
IWDG_PR 预分频寄存器,,低三位有效
IWDG_RLR 重装在寄存器,定义重装载值
IWDG_SR 状态寄存器,RVU重装载值更新,PVU分频值更
2.库函数
#include "IWDG.h"
/* @brief IWDG Init.
* @param None
* @retval None
*/
void IWDG_init(void)
{
//解除写保护IWDR->KR
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
//分频系数 IWDR->PR
IWDG_SetPrescaler(IWDG_Prescaler_64);
//重装载值 IWDR->RLR
IWDG_SetReload(0x0FFF);
//feed dog IWDR->KR
IWDG_ReloadCounter();
//enable IWDR->KR
IWDG_Enable();
}
总结
简单,在DIY编程中不常使用,但在工业电子产品中是不可或缺的,设备经常会运行在电磁干扰严重的地方,常常程序容易跑飞,或陷入死循环,这时候看门狗可以确保我们的产品具有更高的抗干扰性和可靠性,除了独立看门狗以外,常见的还有窗口看门狗和硬件看门狗芯片,例如MAX705。看门狗是电子产品中极为重要的一环,操作逻辑也非常简单。