学习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.代码演示

8.独立看门狗和窗口看门狗的区别

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

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

相关文章

Selenium 等待机制:编写稳定可靠的自动化脚本

一、为什么需要等待机制?网页是动态加载的,元素出现的时间不确定。如果脚本在元素还没加载完成时就尝试操作它,就会抛出 NoSuchElementException 异常。三种等待方式:强制等待:time.sleep() - 简单但低效隐式等待&…

蓓韵安禧活性叶酸独立包装防漏贴心设计

蓓韵安禧叶酸新升级 近期,蓓韵安禧在叶酸产品上进行了重要的优化升级。这次升级的核心在于产品形态和使用体验的显著提升,尤其体现在其包装设计上。新版本采用了独立密封的小包装形式,每一份都精准包含每日所需的叶酸量。这种设计不仅有效避免…

8针脚的1.8寸IIC接口的TFT彩屏的八个引脚都需要使用吗?

核心结论 不需要全部使用8个引脚。实际仅需连接 4根核心线(GND, VCC, SCL, SDA) 即可基本工作,其余引脚为功能增强或备用设计。具体需根据屏幕型号确认,但通用规则如下:8针脚功能分解引脚标号典型名称是否必需作用不连…

刷题日记0831

今日计划5道早上起来不困,吃好早饭开始困了,感觉刷不动题,就先做别的事,不困。现在别的事做好了,感觉能刷动题了。开始开始。7/5134. 加油站 中等超时了。看下题解。不是,怎么上数学了?假设从 x…

【2025.8.31】自学Java三个月,谈谈心路历程顺便给自己灌点鸡汤

自学Java三个月,谈谈心得顺便给自己灌点鸡汤 6月1开始上班,到今天刚好三个月。从上班第一天决定开始自学java,到今天也是正好3个月整,想借这个机会简单记录一下学习java的契机和进度,α一些碎碎念。(括号恐…

linux内核trace_begin和trace_end使用分析

1,strace/ftrace的实现和使用 echo 1 > /sys/kernel/debug/tracing/tracing_on echo function > /sys/kernel/debug/tracing/current_tracer 2, 手动插入追踪点 在内核代码中,可以使用trace_printk函数手动插入追踪点,标记代码段的开始和结束: trace_printk(&…

Linux-驱动积累

Linux 设备驱动概述​Linux 设备驱动是内核与硬件交互的核心桥梁,负责屏蔽硬件细节、提供统一操作接口。其以内核模块为主要存在形式,支持动态加载 / 卸载,核心功能涵盖硬件初始化、中断处理、电源管理及数据传输,是嵌入式 Linux …

软考-系统架构设计师 决策支持系统(DSS)详细讲解

个人博客:blogs.wurp.top 一、DSS的核心概念与定位 1. 什么是DSS? DSS是一个交互式的、计算机化的系统,旨在帮助决策者利用数据和模型来解决半结构化(Semi-structured) 或非结构化(Non-structured&#…

《Python 实战:构建一个可扩展的订单管理系统,从基础操作到架构思维》

《Python 实战:构建一个可扩展的订单管理系统,从基础操作到架构思维》 一、引言:用代码管理商业的脉搏 在数字化浪潮席卷各行各业的今天,订单管理系统已成为电商、物流、零售等领域的核心支撑。它不仅承载着交易数据,更是企业运营效率的体现。而 Python,以其简洁优雅的…

【计算机网络】生产问题排查:如何使用Wireshark抓包/读取抓包文件进行网络分析

1 缘起 有一次,公司同事A让同事B看一次请求日志, 同事B说先抓一次包看看请求是否进入服务器-某个服务, 我知道这个事情后,也“参观”了抓包过程, 上面的事件只是一个小插曲,紧接着的第二件事才是写本篇文章的真正动机: 同一天,同事C让同事D配置个服务代理(某种上网方…

网格dp|

lc3665class Solution {public:int uniquePaths(vector<vector<int>>& grid) {const int MOD 1000000007;int m grid.size(), n grid[0].size();vector memo(m, vector(n, array<int, 2>{-1, -1})); // -1 表示没有计算过auto dfs [&](this auto…

烦人的Nano 编辑器,如何退出呢?

对于不熟悉 nano 编辑器的人来说&#xff0c;它的退出方式确实有点反直觉。别担心&#xff0c;这是几乎所有新手都会遇到的困惑。 退出 Nano 编辑器的正确方法 记住这个黄金法则&#xff1a;ctrl键是你的朋友&#xff01; 1. 正常保存并退出&#xff08;最常用&#xff09; 按 …

IDM(Internet Download Managerv 6.38)破除解版下载!IDM 下载器永久免费版!提升下载速度达5倍!安装及使用

软件介绍 IDM&#xff08;Internet Download Manager&#xff09;是一款功能强大的 Windows 平台专业下载加速工具&#xff0c;可加速下载速度、调度任务、续传下载、管理文件。可使下载速度提升至普通浏览器的 5 倍以上&#xff0c;最高可加速 8 倍。IDM 支持 HTTP、FTP、HTTP…

学习Java29天(tcp多发多收)但是无解决客户端启动多个问题

180/189今天看了一些ip的东西WLAN的ip是路由器随机分配的&#xff08;DHCP&#xff09;

Photoshop - Ps Camera Raw 滤镜

使用Adobe Photoshop Camera Raw滤镜对图像进行快速和可逆的编辑。Camera Raw滤镜将图像拖入Photoshop工作区&#xff0c;或者点击菜单栏-文件-打开来打开图像。选中图像的对应的图层&#xff0c;点击菜单栏-滤镜-Camera Raw滤镜&#xff0c;弹出Camera Raw滤镜面板。使用Camer…

Node.js(4)—— http模块基础

下面我们来学nodejs中的http模块。在此之前&#xff0c;你需要有一定的网络知识储备&#xff0c;能知道http&#xff0c;IP&#xff0c;端口是什么并且它们之间的关系。如果还不清楚或比较模糊&#xff0c;可以查看下面的文章&#xff1a; HTTP协议与IP 下面我们开始学习。 目…

后端去拿数据怎么拿?

简单来说&#xff0c;Entity 和 DTO 代表了数据在不同层次和场景下的不同形态和目的。它们最根本的区别在于&#xff1a;职责和目的不同。一句话概括Entity&#xff1a;代表数据库中的表&#xff0c;是业务逻辑的核心&#xff0c;与持久化&#xff08;数据库&#xff09;紧密相…

从源码角度来学习Activit的启动流程

免责声明&#xff1a;本文是本人的学习记录文档&#xff0c;有问题可以评论区指出&#xff0c;谢谢 一、从Launcher点击桌面图标&#xff0c;拉起app进程&#xff08;不同进程间拉组件&#xff09; 从桌面点击icon图标拉起进程&#xff0c;这个就涉及到很多逻辑了&#xff0c;我…

pgAdmin介绍(PostgreSQL数据库管理软件)数据库客户端、PG客户端、PostgreSQL客户端

文章目录**1. 安装 pgAdmin****1.1 下载****1.2 安装步骤&#xff08;以 Windows 为例&#xff09;**1. **运行安装程序**&#xff1a;双击下载的 .exe 文件。2. **接受协议**&#xff1a;点击 Next&#xff0c;勾选 I accept the agreement。3. **选择安装路径**&#xff1a;默…

桌面GIS软件FlatGeobuf转Shapefile代码分享

桌面GIS软件FlatGeobuf转Shapefile代码分享1、后端代码分享2、前端代码分享分享完成