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

简单理解:WWDG窗口看门狗

在窗口看门狗(WWDG)中,你提到的 WDG_A 其实就是 WDGA(Watchdog Gate Access)位,它是看门狗的使能控制位。

WDG_A(WDGA)位的含义

    •    WDGA = 1:使能窗口看门狗

    •    WDGA = 0:禁用窗口看门狗

关键特性

    •    一旦使能(WDGA=1),看门狗就会开始工作,计数器开始递减

    •    若计数器递减到 0x3F(二进制 00111111),就会触发系统复位

    •    喂狗操作必须在窗口内进行(T[6:0] > W[6:0]),否则也会触发复位

    •    使能后不能通过软件直接禁用,只能通过硬件复位来清除

 


WWDG_CR是STM32窗口看门狗的控制寄存器,全称是Window Watchdog Control Register。它主要有两个功能:

    1.    控制看门狗使能/禁用

    ◦    最高位(WDGA)是看门狗使能位:

    ◦    WDGA = 1:看门狗使能,开始工作

    ◦    WDGA = 0:看门狗禁用,不工作

    2.    控制计数器值

    ◦    低7位(T6~T0)是计数器:

    ◦    计数器从初始值开始递减

    ◦    当计数器递减到0x3F时,触发复位

为什么在T6:0 > W6:0时喂狗?

    •    比较器判断T6:0 > W6:0,输出1

    •    此时写入WWDG_CR(喂狗操作),会重新加载计数器

    •    计数器不会递减到0x3F,避免复位

 


W的取值范围是0x41~0x7F,而不是0x40~0x7F,有效区间是0x40<T≤W。

窗口看门狗的下窗口值固定为0x40,上窗口值由W决定,W是通过配置寄存器WWDG_CFR里的W(6:0)设置的,由于是7位二进制数,最大为0x7F,且必须大于下窗口值0x40,所以W的取值范围是0x41~0x7F。只有当计数器T的值在0x40(不包括0x40)到W(包括W)之间时,进行喂狗操作才有效,否则会触发复位。


窗口看门狗(WWDG)核心知识点整合

一、核心寄存器与关键位(以STM32为例)

1. 控制寄存器(WWDG_CR)—— 8位结构,功能分区明确

WWDG_CR寄存器共8位,按功能分为两大独立区域,互不混淆:

    •    bit7(WDGA位):看门狗使能控制位,仅负责开关看门狗,与计数功能无关。核心规则:1=使能(必须设为1,看门狗才会启动工作);0=禁用(仅能通过硬件复位清除,软件无法直接关闭已使能的看门狗)。

    •    bit6~bit0(T6~T0位):7位递减计数器,专门负责计数和窗口判断,是核心计数单元。核心规则:① T6必须为1(硬件强制要求,否则立即触发复位);② 有效数值范围为0x40(01000000)~0x7F(01111111);③ 最小安全值0x40(T6=1,其余T5~T0全0)。

2. 配置寄存器(WWDG_CFR)关键位

    •    窗口值(W6~W0):定义喂狗的“上限”,需满足W[6:0] < T[6:0](否则窗口无效);

    •    预分频系数(WDGTB):控制计数速度,可选1/2/4/8分频,直接影响超时/窗口时间。

二、核心疑问解答(避坑重点)

1. 为什么T6必须为1?

T6是7位计数器的最高位,硬件设计为“安全校验+时间预留位”:

    •    当T6=1时,计数器初始值≥0x40(01000000),从初始值递减到0x40(触发早期唤醒中断EWI)、再到0x3F(触发复位),会经历至少64个计数周期——这个过程能给程序留出充足时间检测异常、执行喂狗操作,避免误复位;

    •    当T6=0时,计数器数值直接落入0x00~0x3F的非法范围,硬件判定为“程序误配置/失控”,会立即触发复位,防止系统处于不确定状态。

2. 为什么计数器最小安全值是0x40?

0x40的本质是“T6=1前提下的最小7位数值”,核心原因有两点:

    •    满足T6=1的硬件强制要求:0x40对应的二进制是01000000(仅针对bit6~bit0计数区),T6=1、其余T5~T0全0,是“T6=1”能取到的最小数;

    •    触发早期唤醒中断:当计数器减到0x40时,硬件会触发EWI中断,给程序最后一次“补救机会”(即使之前遗漏喂狗,也能通过中断服务函数紧急喂狗,避免复位)。

3. 为什么WDGA不算进计数器(T6~T0)?

WDGA是bit7的独立控制位(功能:开关看门狗),计数器是bit6~bit0的7位计数单元(功能:计数),二者功能分离、寄存器位分配独立——就像“电源开关”和“计时器表盘”,不能把开关的通断状态算成表盘读数,因此谈论计数器数值(如0x40)时,仅看7位计数区,忽略WDGA位。

4. 喂狗有效时间窗口

喂狗必须在“计数器从初始值(T[6:0])递减到窗口值(W[6:0])之间”进行,且计数器不能低于0x40(下限):

    •    窗口上限:W[6:0](WWDG_CFR配置);

    •    窗口下限:0x40(硬件隐含,计数器减到0x40以下未喂狗,触发复位);

    •    若在计数器>窗口值(上限以上)或<0x40(下限以下)喂狗,均会触发复位。

三、关键数值与寄存器示例

当WDGA=1(使能看门狗)、计数器设为0x40(T6~T0=01000000)时,WWDG_CR寄存器的8位整体为1 01000000(二进制,即0xC0),但描述“计数器数值”时,仅指bit6~bit0的0x40,WDGA位作为独立控制位不纳入计数范围。

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

相关文章:

  • 爬取数据存入SQLite:轻量级数据库实战指南
  • 找个会做网站的 一起做网站互联网开发技术
  • 如何利用R语言 进行生物多样性测定、生物量模型构建、生物完整性指数(IBI)筛选与生态环境状况综合指数(EI)计算
  • 前端开发做网站吗wordpress禁止加载头部
  • 建设网站的基础知识六年级做的网站的软件下载
  • SQL中的NULL陷阱:为何=永远查不到空值
  • 厦门市网站建设软件开发公司营销网站seo推广
  • JDBC模板技术
  • 万网网站后台登陆做网站哪个部分
  • 11月10日学习总结--numpy的基本操作
  • 快速搭建一个 GitHub 开源项目导航网站,提供便捷的信息抓取、智能摘要、分类管理功能
  • 网站数据表怎么做网络推广引流方式
  • 【Rocky基础】——用户管理
  • 免费下载建筑图纸的网站wordpress子分页
  • 数据结构简明教程(李春葆版)课后习题答案
  • 做app网站公司名称如何网络推广新产品
  • CSGHub v1.12.0开源版本更新
  • 上海网站建设报价自建网站怎么做推广
  • Vue Router (编程式导航)
  • 特斯拉 Tesla 面试经验分享|流程全解析 + 技术细节 + 面试感受
  • .net网站开发面试网站平台定制开发
  • 网站制作公司咨询工作内容个人做网站可以盈利么
  • 【Unity】MMORPG游戏开发(十)断线恢复
  • 深圳app开发公司哪家服务好网站建设丶seo优化
  • C#/.NET/.NET Core技术前沿周刊 | 第 期(年.-.)
  • 手机网站标准自助建站系统哪个好用
  • 科技赋能文博传播 众趣科技引领数字博物馆虚拟展厅新生态
  • 科技驱动服务升级 榕树钱小乐的创新发展之路
  • 如何系统提升英文科技文献阅读能力:方法、工具与 30 天训练计划
  • 网站开发费用摊销时间深圳 网站公司