【STM32】标准库-看门狗

独立看门狗

此器件具有两个嵌入式看门狗外设,具有安全性高、定时准确及使用灵活的优点。两个看门狗外设(独立和窗口)均可用于检测并解决由软件错误导致的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。

独立看门狗 (IWDG) 由其专用低速时钟 (LSI 32KHz) 驱动。

IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时 间精度要求较低的场合

启动看门狗定时器
当通过对关键字寄存器 (IWDG_KR) 写入值 0xCCCC 启动独立看门狗时,计数器开始从复位 值 0xFFF 递减计数。

当计数器计数到终值 (0x000) 时会产生一个复位信号(IWDG 复位)。

任何时候将关键字 0xAAAA 写到 IWWDG_KR 寄存器中,IWDG_RLR (重装载寄存器)的值就会被重载到计 数器,从而避免产生看门狗复位。

独立看门狗的寄存器访问保护,写保护
IWDG_PR 和 IWDG_RLR 寄存器具有写访问保护。若要修改寄存器,必须首先对 IWDG_KR 寄存器写入代码 0x5555。而写入其他值则会破坏该序列,从而使寄存器访问保护再次生效。
这意味着重装载操作(即写入 0xAAAA,更新看门狗,喂狗)也会启动写保护功能。

喂狗
任何时候将关键字 0xAAAA 写到 IWWDG_KR 寄存器中,IWDG_RLR (重装载寄存器)的值就会被重载到计 数器,从而避免产生看门狗复位。

独立看门狗的计数器是向下计数的,到计数到0后即产生复位

在这里插入图片描述

工程文件下载链接

窗口看门狗

窗口看门狗时钟来自 PCLK1,PCLK1 最大是 45M,由 RCC 时钟控制器开启。

窗口看门狗的计数器是一个递减计数器,共有 7 位,其值存在控制寄存器 CR 的位 6:0,即 T[6:0],当 7 个位全部为 1 时是 0X7F,这个是最大值,当递减到 T6 位变成 0 时,即从 0X40 变为 0X3F时候,会产生看门狗复位。

这个值 0X40 是看门狗能够递减到的最小值,所以计数器的值只能是:
0X40~0X7F 之间,

当递减计数器递减到 0X40 的时候,还不会马上产生复位,如果使能了提前唤醒中断:CFR 位 9EWI 置 1,则产生提前唤醒中断,如果真进入了这个中断的话,就说明程序肯定是出问题了,那么在中断服务程序里面我们就需要做最重要的工作,比如保存重要数据,或者报警等,这个中断我们也叫它死前中断。
在这里插入图片描述

窗口上限值的值

窗口看门狗必须在计数器的值在一个范围内才可以喂狗,其中下窗口的值是固定的0X40,上窗口的值可以改变,具体的由配置寄存器 CFR 的位 6:0 W[6:0] 设置。

计一个数的时间

计数器减一个数的时间 T= 1/CNT_CK = Tpclk1 * 4096 * (2^WDGTB)

一般将CNT寄存器和窗口上限值设置一致,根据需要监控的程序耗时,计数窗口上限值,需要监控的程序调用前,设置好CNT寄存器和窗口上限值,然后使能WWDG,程序结束后喂狗

工具文件下载链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值