STM32复习笔记(二十) —— 看门狗定时器

STM32复习笔记(二十) —— 看门狗定时器

1.独立看门狗

功能框图 (STM32F10xxx参考手册 图157 独立看门狗框图)
STM32复习笔记(二十) —— 看门狗定时器_第1张图片
于键寄存器中写入 0xCCCC 启用独立看门狗后,计数器开始从复位值 0xFFF 开始递减计数,计数到 0x000 时将产生一个复位信号;若需避免看门狗复位,可以于键寄存器中写入 0xAAAA 进行喂狗,此时重装载寄存器中值将被重新加载到计数器

时钟由独立的 RC 振荡器提供
SSS020.002
可通过预分频器选择看门狗超时时间区间
STM32复习笔记(二十) —— 看门狗定时器_第2张图片
超时时间

Tiwdg = 1 / (40K/预分频系数) * (重载值+1)
      = (重载值+1) * 预分频系数 / 40K

修改预分频器 and 重装载寄存器时,须先向键寄存器中写入 0x5555 解除写保护

2.窗口看门狗

功能框图 (STM32F10xxx参考手册 图158 看门狗框图)
STM32复习笔记(二十) —— 看门狗定时器_第3张图片
于看门狗控制寄存器中置位 WDGA 启动看门狗后 (须置位 T6, 以防立即产生复位),当7位递减计数器从 0x40 翻转到 0x3F 时产生一个复位;若在计数器值大于窗口寄存器中的值时重新装载寄存器,将产生一个复位;若需避免看门狗复位,须在计数器值小于窗口寄存器值且大于 0x3F 时写入看门狗控制寄存器 (0xFF 和 0xC0之间);或使用提前唤醒中断

时钟由 PCLK1 提供,36MHz

看门狗时序及超时计算

Twwdg = 1 / (PCLK1/4096/(2^WDGTB)) * (T[5:0]+1)
      = (T[5:0]+1) * (2^WDGTB) * 4096 / PCLK1
|<--- 计数初值   |<--- 窗口上限 (自定义)
|<----------- Twwdg ----------->|<--- 窗口下限 (固定为0x40)
|-------------------------------|-------------------------|

必须在窗口上限与下限之间喂狗

STM32复习笔记(二十) —— 看门狗定时器_第4张图片
本篇总结:

1)开启独立看门狗,需要在计数值递减到零之前喂狗
2)开启窗口看门狗,需要在计数值递减到窗口之间喂狗

你可能感兴趣的:(stm32)