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

STM32学习之WWDG(原理+实操)

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处

文章目录

    • WWDG工作原理
    • WWDG关键寄存器
    • 上窗口值和下窗口值
    • 问答
      • WWDG使能后,递减计数器就开始工作了是吗?
      • 上窗口值为0x5f,计数器初始值设置为0x7f,那么计数器递减到什么时候开始喂狗?
      • 是减到0x5e,立马就喂狗吗?
      • 所以如果上窗口值设置的比较小,喂狗很可能来不及完成吗?


WWDG工作原理

WWDG 内部有一个递减计数器,从设定的初始值开始向下计数。它设定了一个特定的时间窗口,系统必须在这个窗口内完成特定的操作或响应,即计数器值必须落在有效刷新时间窗口内时才能成功喂狗。如果计数器计数到 0 时,未及时刷新,或者在计数器值大于上窗口阈值时就进行刷新,都会触发系统复位。

WWDG关键寄存器

以 STM32 为例,窗口看门狗的功能通过以下寄存器配置实现:
控制寄存器(WWDG_CR)
位 7(WDGA):使能看门狗功能。
位 6:0(W [6:0]):设置上窗口阈值,决定有效刷新时间窗口的上限。
配置寄存器(WWDG_CFR)
位 8:7(EWI):使能提前唤醒中断(当计数器值降至 0x40 时触发中断,用于提前提醒程序刷新看门狗)。
位 6:0(T [6:0]):设置计数器时钟分频系数,用于调整计数器递减速度。
状态寄存器(WWDG_SR)
仅 1 位(EWIF):记录提前唤醒中断是否发生,需软件清零。

上窗口值和下窗口值

上窗口值和下窗口值是决定其有效刷新时间范围的核心参数,二者共同定义了一个 “时间窗口”,程序必须在该窗口内完成 “喂狗”(刷新计数器)操作,否则将触发系统复位。

下窗口值:是一个固定不变的阈值,在大多数微控制器(如 STM32)中,其值固定为 0x40。
上窗口值:是一个可通过寄存器配置的阈值,代表有效刷新时间窗口的上限。
在 STM32 中,上窗口值由 WWDG_CR 寄存器的 W [6:0] 位 定义,取值范围为 0x40 < 上窗口值 ≤ 0x7F(即 65~127,共 63 个可选值)。

程序必须在计数器值从初始值递减至小于等于上窗口值,且大于下窗口值(0x40)时进行刷新。
过早刷新(计数器值 > 上窗口值时刷新)会被视为无效操作,同样会触发复位。

问答

WWDG使能后,递减计数器就开始工作了是吗?

是的,WWDG 使能后,递减计数器就开始工作

上窗口值为0x5f,计数器初始值设置为0x7f,那么计数器递减到什么时候开始喂狗?

当计数器递减到小于 0x5F 且大于等于 0x40 时就可以开始喂狗。即计数器从 0x7F 开始递减,减到 0x5E 及以下(但不小于 0x40)时,就进入了可以喂狗的窗口范围。

是减到0x5e,立马就喂狗吗?

窗口看门狗的喂狗时机是在计数器的值处于上窗口值和下窗口值之间时进行。当计数器从初始值 0x7F 递减到 0x5E 时,已经进入了可喂狗的窗口范围,但具体的喂狗时机可以根据程序的实际情况来决定,只要在计数器递减到 0x40 之前完成喂狗操作,就可以避免看门狗复位。

所以如果上窗口值设置的比较小,喂狗很可能来不及完成吗?

上窗口值决定了喂狗窗口的起始时间。上窗口值较小,意味着计数器从初始值递减到可喂狗窗口的时间较短,留给程序执行到喂狗代码的时间就少。例如,若初始值为 0x7F,上窗口值设为 0x45,计数器从 0x7F 递减到 0x45 很快,可能程序还未执行到喂狗部分,计数器就已经接近或达到下窗口值 0x40 了,容易导致喂狗来不及。

相关文章:

  • 适合自己的记单词方式
  • 中英混合编码解码全解析
  • C++实现汉诺塔游戏用户交互
  • 【笔记】用命令手动下载并安装 tokenizers 库.whl文件(Python 3.12+)
  • 动态规划(2)
  • 7. Ext系列文件系统
  • 深度学习介绍
  • 如何选择最高效的沟通方式?
  • 光耦电路学习,光耦输入并联电阻、并联电容,光耦输出滤波电路
  • 国产高云FPGA实现视频采集转UDP以太网输出,FPGA网络摄像头方案,提供2套Gowin工程源码和技术支持
  • 2023年12月四级真题Reading Comprehension的分析总结
  • SpringCloud 分布式锁Redisson锁的重入性 高并发 获取锁
  • 【氮化镓】钝化层对p-GaN HEMT阈值电压的影响
  • Qt 事件传递的完整流程
  • 板凳-------Mysql cookbook学习 (九--3)
  • AXURE-动态面板
  • 软考 系统架构设计师系列知识点之杂项集萃(79)
  • h5的aliplayer-min.js 加密视频会走到debugger
  • 晶台光耦在手机PD快充上的应用
  • [游戏设计原理_1] 对称性和同步性 | 合作与对抗 | 公平 | 反馈循环
  • 代做网页设计作业价格/seo是指什么
  • 表白墙网站怎么做/seo工具包括
  • 企业如何建立网站/推广方案的内容有哪些
  • 看网站是不是WP做的/口碑营销的概念是什么
  • 有哪些做兼职的设计网站有哪些工作/西地那非片说明书
  • 域名服务网站建设科技公司/什么叫营销