1.1 看门狗介绍
此器件具有两个嵌入式看门狗外设,具有安全性高、定时准确及使用灵活的优点。两个看门狗外设(独立和窗口)均可用于检测并解决由软件错误导致的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。
//:C语言、C语言学习、C语言培训、MCU学习、PCB教程、PCB学习、嵌入式学习、嵌入式培训、嵌入式教程、嵌入式前景、嵌入式Linux、Linux开发、Linux系统、python、python教程、python学习、Python编程、Python待遇、物联网开发、物联网培训、物联网智能控制、物联网学习、信盈达培训、信盈达嵌入式 ://
独立看门狗 (IWDG) 由其专用低速时钟 (LSI) 驱动,因此即便在主时钟发生故障时仍然保持工作状态。IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。
看门狗本质其实就是一个独立的定时器、计数器。
LSI:是内部低速振荡器,温漂比较大,误差较大。
1.1.1 IWDG 主要特性
自由运行递减计数器
时钟由独立 RC 振荡器提供(可在待机和停止模式下运行)
当递减计数器值达到 0x000 时产生复位(如果看门狗已激活)
<!--[if !supportLists]-->1.2 <!--[endif]-->看门狗框图
<!--[if !supportLists]-->1.1 <!--[endif]-->相关寄存器
<!--[if !supportLists]-->1.1.1 <!--[endif]-->关键字寄存器 (IWDG_KR)
位 15:0 KEY[15:0]: | 键值 (Key value)(只写位,读为 0000h) IWDG->KR = 0xAAAA; |
<!--[if !supportLists]-->1.1.1 <!--[endif]-->状态寄存器 (IWDG_SR)
位 1 RVU: | 看门狗计数器重载值更新 (Watchdog counter reload value update) |
位 0 PVU: | 看门狗预分频器值更新 (Watchdog prescaler value update) |
<!--[if !supportLists]-->1.1.1 <!--[endif]-->预分频器寄存器 (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
等待允许更新重载值和预分频值
更新更新重载值和预分频值
启动看门狗。
信盈达专注嵌入式教育10多年,在嵌入式软、硬件培训教育方面有着丰厚的资源和经验积累。顺应市场需求,开设有嵌入式培训、物联网培训、ARM培训、Linux培训、人工智能Python培训、Java培训、Android培训、单片机培训、硬件培训、PCB培训、电子培训、FPGA培训等培训课程,如果你想成为一名受人尊敬的it开发工程师,来信盈达参加it培训课程,未来的你一定会感激现在的选择!