1.1 看门狗介绍
此器件具有两个嵌入式看门狗外设,具有安全性高、定时准确及使用灵活的优点。两个看门狗外设(独立和窗口)均可用于检测并解决由软件错误导致的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。
独立看门狗 (IWDG) 由其专用低速时钟 (LSI) 驱动,因此即便在主时钟发生故障时仍然保持工作状态。IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。
看门狗本质其实就是一个独立的定时器、计数器。
LSI:是内部低速振荡器,温漂比较大,误差较大。
1.1.1 IWDG 主要特性
自由运行递减计数器
时钟由独立 RC 振荡器提供(可在待机和停止模式下运行)
当递减计数器值达到 0x000 时产生复位(如果看门狗已激活)
1.2 看门狗框图
1.1 相关寄存器
1.1.1 关键字寄存器 (IWDG_KR)
位 15:0 KEY[15:0]: | 键值 (Key value)(只写位,读为 0000h) IWDG->KR = 0xAAAA; |
1.1.1 状态寄存器 (IWDG_SR)
位 1 RVU: | 看门狗计数器重载值更新 (Watchdog counter reload value update) |
位 0 PVU: | 看门狗预分频器值更新 (Watchdog prescaler value update) |
1.1.1 预分频器寄存器 (IWDG_PR)
位 2:0 PR[2:0]: | 预分频器 (Prescaler divider) |
1.1.1 重载寄存器 (IWDG_RLR)
位 11:0 RL[11:0]: | 看门狗计数器重载值 (Watchdog counter reload value) |
举例1:假如代码时间为20ms,独立看门狗定时设置为多少?
时间增加50%~200%。
时钟源LSI:32KHz。对应的周期 1/32ms。
假如需要配置定时为50ms。
64分频,得到1/2KHz。重载值25。得到50ms定时。
32分频,得到1KHz。重载值50。得到50ms定时。
16分频,得到2KHz。重载值100。得到50ms定时。
8分频,得到4KHz。重载值200。得到50ms定时。
4分频,得到8KHz。重载值400。得到50ms定时。
具体选择组合模式,根据自己需要。
1.1 编程
解锁IWDG
等待允许更新重载值和预分频值
更新更新重载值和预分频值
启动看门狗。