一独立看门狗
二窗口看门狗
三级目录
STM32有两个看门狗:独立看门狗,由专用的低速时钟LSI驱动,即使主时钟故障它仍有效;窗口看门狗,由从APB1时钟分频后得到的时钟驱动。
一、独立看门狗
键值寄存器:IWDG_KR:0-15位有效
预分频寄存器:IWDG_PR:0-2位有效 应用时,先取消写保护
重装载寄存器:IWDG_RLR:0-11位有效 应用时,先取消写保护
状态寄存器:IWDG_SR:0-1位有效
IWDG_KR 写入0xCCCC 看门狗工作 计数器从0xFFF递减到0x000,产生复位信号IWDG_RESET
IWDG_KR 写入0xAAAA 重装载寄存器IWDG_RLR中的值重装载到计数器(喂狗)
IWDG_KR 写入0x5555 允许访问IWDG_PR、IWDG_RLR寄存器(取消写保护)
二、窗口看门狗
(1)窗口看门狗:喂狗时间有上下限(5F-3F),通过寄存器设定上限,下限固定;
(2)递减计数器T【6:0】产生复位:1、喂狗时,计数器的值大于某一设定值(上限);2、计数器的值从0x4F减到0x3F时;
(3)启动看门狗并启动中断,当递减计数器等于0x4F时产生早期唤醒中断EWI,可用于喂狗避免中断。
(4)窗口看门狗时钟来源于PCLK1(APB1总线)分频后;
(5)寄存器:
1、控制寄存器WWDG_CR:T[6:0]储存计数器值,位7:0 禁止看门狗/1 启用看门狗;
2、配置寄存器WWDG_CFR:W【6:0】设置窗口值,位8:7WDGTB【1:0】设置分频系数 00→1/01→2/10→4/11→8/,位
9EWI 1 提前唤醒中断;
3、状态寄存器WWDG_SR:位0 提前唤醒中断标志;
(6)编写窗口看门狗 代码步骤: