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

news2025/6/6 11:02:11

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【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.coloradmin.cn/o/2398469.html

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

相关文章

Keil MDK5.37或更高版本不再预装ARM Compiler Version5导致编译错误的解决方法

Keil MDK5.37预装的是最新的ARM Compiler Version6 我们可以先右击查看工程属性 在Target标签下&#xff0c;我们可以看到Compiler Version5就是丢失的 在Target标签下&#xff0c;我们可以看到Compiler Version5就是丢失的 图1 以固件库方式编程&#xff0c;编译之后全是错…

Unity-UI组件详解

今天我们来学习Unity的UI的详解&#xff0c;这部分的内容相对较少&#xff0c;对于程序员来说主要的工作是负责将各种格式的图片呈现在显示器上并允许操作这些图片。 本篇帖子的理论依据依然是官方开源的UGUI代码&#xff0c;网址为&#xff1a;GitHub - Unity-Technologies/u…

黑马点评完整代码(RabbitMQ优化)+简历编写+面试重点 ⭐

简历上展示黑马点评 完整代码地址 项目描述 黑马点评项目是一个springboot开发的前后端分离项目&#xff0c;使用了redis集群、tomcat集群、MySQL集群提高服务性能。类似于大众点评&#xff0c;实现了短信登录、商户查询缓存、优惠卷秒杀、附近的商户、UV统计、用户签到、好…

Java 大视界 -- Java 大数据在智能安防视频监控中的异常事件快速响应与处理机制(273)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

【数据库】安全性

数据库安全性控制的常用方法&#xff1a;用户标识和鉴定、存取控制、视图、审计、数据加密。 1.用户标识与鉴别 用户标识与鉴别(Identification & Authentication)是系统提供的最外层安全保护措施。 2.存取控制 2.1自主存取控制(简称DAC) (1)同一用户对于不同的数据对…

【图像处理入门】4. 图像增强技术——对比度与亮度的魔法调节

摘要 图像增强是改善图像视觉效果的核心技术。本文将详解两种基础增强方法&#xff1a;通过直方图均衡化拉伸对比度&#xff0c;以及利用伽马校正调整非线性亮度。结合OpenCV代码实战&#xff0c;学会处理灰度图与彩色图的不同增强策略&#xff0c;理解为何彩色图像需在YUV空间…

HALCON 深度学习训练 3D 图像的几种方式优缺点

HALCON 深度学习训练 3D 图像的几种方式优缺点 ** 在计算机视觉和工业检测等领域&#xff0c;3D 图像数据的处理和分析变得越来越重要&#xff0c;HALCON 作为一款强大的机器视觉软件&#xff0c;提供了多种深度学习训练 3D 图像的方式。每种方式都有其独特的设计思路和应用场…

FreeRTOS的简单介绍

一、FreeRTOS介绍 FreeRTOS并不是实时操作系统&#xff0c;因为它是分时复用的 利用CubeMX快速移植 二、快速移植流程 1. 在 SYS 选项里&#xff0c;将 Debug 设为 Serial Wire &#xff0c;并且将 Timebase Source 设为 TIM2 &#xff08;其它定时器也行&#xff09;。为何…

深入解析C++引用:从别名机制到函数特性实践

1.C引用 1.1引用的概念和定义 引用不是新定义⼀个变量&#xff0c;而是给已存在变量取了⼀个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同⼀块内存空间。比如四大名著中林冲&#xff0c;他有一个外号叫豹子头&#xff0c;类比到C里就…

项目交付后缺乏回顾和改进,如何持续优化

项目交付后缺乏回顾和改进可通过建立定期回顾机制、实施反馈闭环流程、开展持续学习和培训、运用数据驱动分析、培养持续改进文化来持续优化。 其中&#xff0c;实施反馈闭环流程尤其重要&#xff0c;它能够确保反馈信息得到有效传递、处理与追踪&#xff0c;形成良好的改进生态…

从0开始学习R语言--Day15--非参数检验

非参数检验 如果在进行T检验去比较两组数据差异时&#xff0c;假如数据里存在异常值&#xff0c;会把数据之间的差异拉的很大&#xff0c;影响正常的判断。那么这个时候&#xff0c;我们可以尝试用非参数检验的方式来比较数据。 假设我们有A&#xff0c;B两筐苹果&#xff0c…

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

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

第三发 DSP 点击控制系统

背景 ​ 在第三方 DSP 上投放广告&#xff0c;需要根据 DP Link 的点击次数进行控制。比如当 DP Link 达到 5000 后&#xff0c;后续的点击将不能带来收益&#xff0c;但是后续的广告却要付出成本。因此需要建立一个 DP Link 池&#xff0c;当 DP Link 到达限制后&#xff0c;…

【笔记】在 MSYS2 MINGW64 环境中降级 NumPy 2.2.6 到 2.2.4

&#x1f4dd; 在 MSYS2 MINGW64 环境中降级 NumPy 到 2.2.4 ✅ 目标说明 在 MSYS2 的 MINGW64 工具链环境中&#xff0c;将 NumPy 从 2.2.6 成功降级到 2.2.4。 &#x1f9f0; 环境信息 项目内容操作系统Windows 11MSYS2 终端类型MINGW64&#xff08;默认终端&#xff09;Py…

vue入门环境搭建及demo运行

提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 vue简介&#xff1a;第一步&#xff1a;安装node.jsnode简介第二步&#xff1a;安装vue.js第三步&#xff1a;安装vue-cli工具第四步 &#xff1a;安装webpack第五步…

原始数据去哪找?分享15个免费官方网站

目录 一、找数据的免费官方网站 &#xff08;一&#xff09;国家级数据宝库&#xff1a;权威且全面 1.中国国家统计局 2.香港政府数据中心 3.OECD数据库 &#xff08;二&#xff09;企业情报中心&#xff1a;洞察商业本质 4.巨潮资讯 5.EDGAR数据库 6.天眼查/企查查&a…

宝塔部署 Vue + NestJS 全栈项目

宝塔部署 Vue NestJS 全栈项目 前言一、Node.js版本管理器1、安装2、配置 二、NestJS项目管理&#xff08;等同Node项目&#xff09;1、Git安装2、拉取项目代码3、无法自动认证4、添加Node项目5、配置防火墙&#xff08;两道&#xff09; 三、Vue项目管理1、项目上传2、Nginx安…

# [特殊字符] Unity UI 性能优化终极指南 — LayoutGroup篇

&#x1f3af; Unity UI 性能优化终极指南 — LayoutGroup篇 &#x1f9e9; 什么是 LayoutGroup&#xff1f; LayoutGroup 是一类用于 自动排列子节点 的UI组件。 代表组件&#xff1a; HorizontalLayoutGroupVerticalLayoutGroupGridLayoutGroup 可以搭配&#xff1a; Conte…

2024-2025-2-《移动机器人设计与实践》-复习资料-8……

2024-2025-2-《移动机器人设计与实践》-复习资料-1-7-CSDN博客 08 移动机器人基础编程 单选题&#xff08;6题&#xff09; 在ROS中&#xff0c;用于移动机器人速度控制的消息类型通常是&#xff1f; A. std_msgs/StringB. geometry_msgs/TwistC. sensor_msgs/ImageD. nav_ms…

如何监测光伏系统中的电能质量问题?分布式光伏电能质量解决方案

根据光伏相关技术规范要求&#xff0c;通过10(6)kV~35kV电压等级并网的变流器类型分布式电源应在公共连接点装设满足GB/T 19862要求的A级电能质量监测装置。用于监测分布式光伏发出的电能的质量&#xff0c;指标包括谐波、电压偏差、电压不平衡度、电压波动和闪变等。 CET中电…