目录
1、IWDG_KR (Independent Watchdog_Key Register) 关键词寄存器
2、IWDG_PR (Independent Watchdog_Prescaler Register) 预分频寄存器
3、IWDG_RLR (Independent Watchdog_Reload Register) 重载寄存器
4、IWDG_SR (Independent Watchdog_Status Register) 状态寄存器
一、看门狗概述
STM32自带两个看门狗:独立看门狗IWDG和窗口看门狗WWDG。
看门狗的作用是用来检测和解决软件错误引起的故障;解决程序由于不正当的操作或者程序自身原因所造成的死循环或者“跑飞”现象。
用户需要在规定时间内进行喂狗操作,否则看门狗将执行一次MCU复位操作。
1、看门狗工作原理
看起看门狗后设置递减计数器的初始值,当计数值达到溢出值时,产生MCU复位,此时本来运行的程序将会终止,并且重新启动单片机。在使用看门狗之后,在正常运行的程序中加入喂狗的程序,即采用定时器的方式每隔一段时间进行一次重置计数器装载值,这样只要程序正常运行,没有出现故障或软件错误程序就会不断地定时喂狗,从而不会使计数器超时产生复位信号。
2、独立看门狗IWDG主要性能:
①IWDG采用的是LSI,评率为40KHz,这个在时钟那一节也提到过。
②自由运行的递减计数器
③时钟由独立的RC振荡器提供,也就是说可在停止和待机模式下工作
④看门狗被激活后,则在计数器计数到0x000时产生复位
图1.1 IWDG框图
*WWDG (Window Watchdog) 窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟 或过早的操作。 IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。
二、看门狗相关寄存器
1、IWDG_KR (Independent Watchdog_Key Register) 关键词寄存器
2、IWDG_PR (Independent Watchdog_Prescaler Register) 预分频寄存器
3、IWDG_RLR (Independent Watchdog_Reload Register) 重载寄存器
4、IWDG_SR (Independent Watchdog_Status Register) 状态寄存器
三、看门狗配置
看门狗初始化→喂狗→主函数
若文章内容出现错误,恳请各位批评指正,感激不尽!