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 了,容易导致喂狗来不及。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/83529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【端午安康】龙舟争渡Plug-In

文章目录 正文附录A&#xff1a;关于Python的录屏方法总结&#xff08;来自DeepSeek的回答&#xff09;1. 使用 pyautogui 和 OpenCV 录制屏幕2. 使用 mss 库&#xff08;高效屏幕捕获&#xff09;3. 使用 PIL.ImageGrab 录制屏幕4. 使用 Windows 原生快捷键录制&#xff08;非…

Apache SeaTunnel部署技术详解:模式选择、技巧与最佳实践

Apache SeaTunnel(原Waterdrop)作为高性能、分布式数据集成平台,支持海量数据的离线与实时同步。其灵活多样的部署模式可适配不同规模的生产环境需求。本文将系统解析SeaTunnel的部署架构、技术要点及最佳实践,帮助用户高效构建稳定可靠的数据管道。 一、部署模式全景概览 …

【机械视觉】Halcon—【六、交集并集差集和仿射变换】

【机械视觉】Halcon—【六、交集并集差集和仿射变换】 目录 【机械视觉】Halcon—【六、交集并集差集和仿射变换】 介绍 交集并集差集介绍: 1. 交集&#xff08;Intersection&#xff09; 2. 并集&#xff08;Union&#xff09; 3. 差集&#xff08;Difference&#xff…

实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.6 R语言解题

本文是实验设计与分析&#xff08;第6版&#xff0c;Montgomery著&#xff0c;傅珏生译) 第5章析因设计引导5.7节思考题5.6 R语言解题。主要涉及方差分析&#xff0c;正态假设检验&#xff0c;残差分析&#xff0c;交互作用图&#xff0c;等值线图。 dataframe <-data.frame…

剑指offer15_数值的整数次方

数值的整数次方 实现函数 double Power(double base, int exponent) 题目要求 计算 base exponent \text{base}^{\text{exponent}} baseexponent&#xff1a; 不得使用库函数不需要考虑大数问题&#xff0c;绝对误差不超过 10 − 2 10^{-2} 10−2不会出现底数和指数同为 0…

【Typst】1.Typst概述

概述 Typst是一种用于排版文档的标记语言&#xff0c;可以用于排版各种精美的论文、文章、书籍、报告和作业等。它是LaTex的精神续作&#xff0c;但是运行环境和编译速度都要更简单、更快捷。 它设计了一种脚本结合简单的标记语法实现复杂的排版效果。并且支持模板创建、文件…

[Java恶补day14] 56. 合并区间

以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 示例 1&#xff1a; 输入&#xff1a;intervals [[1,3…

DiskGenius专业版v6.0.1.1645:分区管理、数据恢复、备份还原,一应俱全!

各位小伙伴&#xff0c;大家好&#xff01;今天阿灿给大家带来一款超好用的分区工具&#xff0c;DiskGenius专业版。这款工具堪称电脑管理界的“瑞士军刀”&#xff0c;功能强大&#xff0c;现在出了新版本v6.0.1.1645&#xff0c;简繁中文单文件便携版&#xff0c;使用超方便。…

azure web app创建分步指南系列之二

为注册表授权托管标识 你创建的托管标识尚未获得从容器注册表中提取数据的授权。在此步骤中,你将启用授权。 返回容器注册表的管理页面: 在左侧导航菜单中,选择“访问控制 (IAM)”。选择“添加角色分配”。此屏幕截图显示了如何为容器注册表启用添加角色分配。在角色列表中…

STM32 AD单通道与多通道实战指南

文章目录 AD单通道&#xff08;实验&#xff09;有关配置的库函数AD单通道部分主要代码 AD多通道实现多通道采集实现思路探讨单次转换非扫描模式实现AD多通道AD多通道部分代码 学习建议&#xff1a;推荐搭配 江协科技 AD单通道 AD多通道一起食用&#xff01;&#xff01;&#…

沟通频率不合适,如何找到平衡点

在团队协作中&#xff0c;沟通频率过高、信息干扰、节奏错位常常导致效率下降与成员倦怠。PMI研究指出&#xff0c;沟通不当是75%项目延误的根源&#xff0c;其中沟通频率失衡是关键变量之一。要解决这一问题&#xff0c;关键在于设定节奏、分层沟通、制定协议。其中&#xff0…

EC2 实例详解:AWS 的云服务器怎么玩?☁️

弹性计算、灵活计费、全球可用&#xff0c;AWS EC2 全攻略 在 AWS 生态中&#xff0c;有两个核心服务是非常关键的&#xff0c;一个是 S3&#xff08;对象存储&#xff09;&#xff0c;另一个就是我们今天的主角 —— Amazon EC2&#xff08;Elastic Compute Cloud&#xff09…

lvs-keepalived高可用群集

目录 1.Keepalived 概述及安装 1.1 Keepalived 的热备方式 1.2 keepalived的安装与服务控制 &#xff08;1&#xff09;安装keep alived (2)控制 Keepalived 服务DNF 安装 keepalived 后,执行以下命令将keepalived 服务设置为开机启动。 2.使用 Keepalived 实现双机热备 …

车载诊断架构SOVD --- 车辆发现与建连

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…

BUUCTF之[ACTF2020 新生赛]BackupFile

打开环境就一句话 找出源文件! 结合题目名字&#xff1a;BackupFile 先用dirsearct扫描网站文件 发现一个index.php.bak ,拼接url下载 打开发现php代码 <?php include_once "flag.php";if(isset($_GET[key])) {$key $_GET[key];if(!is_numeric($key)) {exit…

Rag技术----项目博客(六)

RAG 定义&#xff1a;检索增强生成&#xff08;Retrieval Augmented Generation&#xff09;&#xff0c;简称 RAG&#xff0c;已经成为当前最火热的LLM应用方案。 目的&#xff1a;通过提供相关领域数据库通过问题检索信息&#xff0c;将相关信息合并到Prompt中&#xff0c;…

设计模式——外观设计模式(结构型)

摘要 本文介绍了外观设计模式&#xff0c;它是一种结构型设计模式&#xff0c;通过引入一个外观类来封装复杂子系统的调用细节&#xff0c;对外提供简单统一的接口。文中通过生活类比、关键角色介绍、使用场景分析以及结构说明等方面对这一模式进行了全面阐述&#xff0c;还涉…

LabVIEW磁悬浮轴承传感器故障识别

针对工业高端装备中主动磁悬浮轴承&#xff08;AMB&#xff09;的位移传感器故障检测需求&#xff0c;基于 LabVIEW 平台构建了一套高精度故障识别系统。通过集成品牌硬件与 LabVIEW 的信号处理能力&#xff0c;实现了传感器探头故障的实时监测与精准定位&#xff0c;解决了传统…

集成学习三种框架

集成学习通过组合多个弱学习器构建强学习器&#xff0c;常见框架包括Bagging&#xff08;装袋&#xff09;、Boosting&#xff08;提升&#xff09; 和Stacking&#xff08;堆叠&#xff09; 一、Bagging&#xff08;自助装袋法&#xff09; 核心思想 从原始数据中通过有放回…

PCI DSS培训记录

22日上午: 整体PCI DSS 结构分享VISA分享全球欺诈风险动态 信用卡被偷枚举攻击依然是最为主要的安全威胁之一(枚举验证码),增加3DS验证防护勒索软件和信息泄漏攻击欺诈分子对AI技术的兴趣日益增加,如换脸软件过验证基于NFC技术利用非接交易进行欺诈成为新的攻击手段,如NF…