当前位置: 首页 > news >正文

学习stm32 窗口看门狗

窗口看门狗

1.WWDG简介

窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常,一般用于需要精准检测程序运行时间的场合。不仅防止程序 “卡死不喂狗”,还能避免程序 “异常早喂狗”(如死循环中误执行喂狗指令),适用于对 CPU 内核运行状态要求极高的场景,是独立看门狗(IWDG)的重要补充。
窗口看门狗的本质是一个能产生系统复位信号提前唤醒中断6位计数器。
产生复位条件:
当递减计数器值从 0x40 减到 0x3F 时复位(即T6位跳变到0
计数器的值大于 W[6:0] 值时喂狗会复位。
产生中断条件:
当递减计数器等于 0x40 时可产生提前唤醒中断 (EWI)
在窗口期内重装载计数器的值,防止复位,也就是所谓的喂狗。

2.核心定义:为什么需要 “窗口” 机制?

在嵌入式系统中,独立看门狗(IWDG)的监控逻辑相对宽松:只要程序在 “溢出周期内” 执行喂狗即可。但实际场景中,可能出现一种隐蔽故障 ——程序陷入 “异常循环” 却仍能喂狗
例如,程序因逻辑漏洞进入死循环,但循环中恰好包含喂狗指令,此时 IWDG 会被持续 “误喂狗”,无法检测到故障,导致系统长期处于异常状态。

窗口看门狗的 “窗口机制” 正是为解决此问题而生:它强制要求喂狗操作必须在一个特定的 “时间窗口” 内执行 —— 早于窗口上限(不允许过早喂狗)、晚于窗口下限(不允许过晚喂狗)都会触发复位。这种 “双向限制” 让监控更严格,能覆盖 IWDG 无法检测的 “异常喂狗” 场景。

3. WWDG工作原理及框图

其中T6通常为1,当T1~T5为任意值,当T1~T5为0,即为0X40

随后减一,T6由1变0,即为0X3F,产生复位

写入WWDG_CR(喂狗)后,如果T6:0 > W6:0 比较结果为1,产生复位

4.WWDG寄存器

5.WWDG溢出时间计算

6. WWDG配置步骤

7.代码演示

http://www.dtcms.com/a/358398.html

相关文章:

  • 鸿蒙ArkUI 基础篇-12-List/ListItem-界面布局案例歌曲列表
  • Shell脚本命令扩展
  • 回归问题的损失函数
  • 06.《STP 基础原理与配置详解》
  • 学习python第14天
  • Spark mapGroups 函数详解与多种用法示例
  • 神经网络正则化三重奏:Weight Decay, Dropout, 和LayerNorm
  • 嵌入式硬件电路分析---AD采集电路
  • pyqt5的简单开发可视化界面的例子
  • 【重学 MySQL】九十三、MySQL的字符集的修改与底层原理详解
  • Linux学习----归档和传输文件实用指南
  • java报错问题解析
  • 在 MyBatis 中oracle基本数值类型的 JDBC 类型映射
  • Let‘s Encrypt证书自动续期
  • 【数据分享】上市公司-创新投入、研发投入数据(2007-2022)
  • 【Python 后端框架】总结
  • Transformer:从入门到精通
  • 第二十六天-待机唤醒实验
  • 【GaussDB】在逻辑复制中剔除指定用户的事务
  • Java动态代理
  • Redis-基数统计、位图、位域、流
  • ⚡ Linux find 命令参数详解
  • 【开题答辩全过程】以 云智课为例,包含答辩的问题和答案
  • SQL语言增删改查之C与R
  • 05MySQL多表查询全解析
  • Flutter 跨平台开发环境搭建指南
  • Spring Boot 后端接收多个文件的方法
  • Android 权限申请现代化指南
  • 机器学习中的欠拟合与过拟合
  • SC税务 登录滑块 分析