一、看门狗
1、介绍
作为一个检测装置,发生意外情况能够报告并处理突发意外——复位。
复位中断属于不可屏蔽中断,属于优先级最高的中断
2、作用
两个看门狗(独立看门狗和窗口看门狗)均可用于检测并解决由软件错误导致的故障(程序跑飞);当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。
3、窗口看门狗
指定程序段执行一定的时间范围内时,窗口看门狗能够再设置好后进行监督。
二、独立看门狗
1、独立看门狗(IWDG)的本质
独立看门狗的工作独立于主程序,但是它能监督主程序。本质是一个递减计数器,由LSI提供时钟驱动。设置一个看门的计时时间(计数脉冲个数),看门狗会开始倒计时,看门狗计数器倒计数到0,系统复位。
以上前提如何实现监督呢?
让正常运行的主程序定时喂狗——重置看门计数器的值。
如果主程序跑飞/崩溃,没有人喂狗,看门狗就会倒计时到0,直接复位。
2、流程
启动看门狗:对密钥寄存器(IWDG_KR)写入0xCCCC。
重载计数器,避免看门狗复位(喂狗):对密钥寄存器(IWDG_KR)写入0xAAAA。
IWDG_PR和IWDG_RLR寄存器具有写保护,若要修改寄存器,则对密钥寄存器(IWDG_KR)写入0x5555
3、独立看门狗框图

IWDG_PR分频系数选择:

4、独立看门狗的使用
需要控制的寄存器有:
- 键值寄存器IWDG_KR: 0~15位有效
- 预分频寄存器IWDG_PR:0~2位有效。具有写保护功能,要操作先取消写保护
- 重装载寄存器IWDG_RLR:0~11位有效。具有写保护功能,要操作先取消写保护。
- 状态寄存器IWDG_SR:0~1位有效
IWDG独立看门狗操作库函数

本文详细介绍了STM32中的独立看门狗(IWDG)原理及使用方法。包括独立看门狗的工作机制、配置流程、寄存器设置等,并提供了具体的初始化示例代码。

6268

被折叠的 条评论
为什么被折叠?



