STM32_窗口看门狗

什么是窗口看门狗?

窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常,一般用于需要精准检测
程序运行时间的场合。
窗口看门狗的本质是一个能产生 系统复位信号 提前唤醒中断 6 位计数器

产生复位条件:

  • 当递减计数器值从 0x40 减到 0x3F 时复位(即T6位跳变到0
  • 计数器的值大于 W[6:0] 值时喂狗会复位。

产生中断条件:

当递减计数器等于 0x40 时可产生提前唤醒中断 (EWI)
在窗口期内重装载计数器的值,防止复位,也就是所谓的喂狗。       

窗口看门狗工作原理

WWDG框图
控制寄存器 

配置寄存器

 状态寄存器

超时时间计算  

  • ToutWWDG超时时间(没喂狗)
  • FwwdgWWDG的时钟源频率(最大36M4096WWDG固定的预分频系数
  • 2^WDGTBWWDG_CFR寄存器设置的预分频系数值
  • T[5:0]WWDG计数器低6位,最多63

 窗口看门狗实验

需求:
开启窗口看门狗,计数器值设置为 0X7F ,窗口值设置为 0X5F ,预分频系数为 8 。程序启动时点
LED1 300ms 后熄灭。在提前唤醒中断服务函数进行喂狗,同时翻转 LED2 状态。
  1. 计数器值设置为 0X7F(127):

    • 这是看门狗定时器的计数器的初始值。当计数器从这个值开始倒数,直到达到零时,如果没有被喂狗(watchdog fed),系统会认为出现了故障,并执行看门狗复位。
  2. 窗口值设置为 0X5F(95):

    • 这是一个窗口看门狗的特性。窗口看门狗允许在计数器的特定范围内喂狗,而不仅仅是在计数器为零的时候。窗口值表示允许的计数器范围,喂狗的时候必须在这个范围内。如果超出了窗口范围,系统也会认为出现了故障。
  3. 预分频系数为 8:

    • 预分频系数决定了看门狗定时器的时钟频率。将计数器的时钟频率降低可以延长计数器倒计时的时间,从而增加看门狗的超时时间。
  4. 程序启动时点亮 LED1,300ms 后熄灭:

    • 这可能是一个系统启动时的指示,LED1在启动时点亮,然后经过300毫秒后熄灭。这个过程可能是为了显示系统正常启动,并且在此期间看门狗计数器已经开始倒计时。
  5. 提前唤醒中断服务函数进行喂狗,同时翻转 LED2 状态:

    • 在提到“提前唤醒中断服务函数”时,这是指在系统正常运行时,定期地通过中断服务函数喂狗,以防止看门狗超时复位系统。同时,LED2状态的翻转可能是为了实时指示系统的正常运行。

 

硬件接线
LED1 -- PB8
LED2 -- PB9
WWDG 配置:

  

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Moonbeam生态项目分析 — — 跨链借贷协议Orbiter One

概览 Orbiter One是一个非托管的借贷协议和DeFi中心,专注于跨链互操作性。通过使用从借贷中赚取的ORB Token铸造的Intergactic Whiskers Brigade NFT,用户可以质押并获得额外奖励,借贷和跨链存款则可以在不离开Moonbeam的情况下无缝参与其他…

Web自动化框架中验证码识别处理全攻略,让测试更得心应手!

前言: 随着Web应用程序的不断发展,自动化测试已成为项目开发中必不可少的一环。然而,验证码的出现却经常会使自动化测试变得更具挑战性。为了解决这个问题,我们需要一种方法来自动识别和处理验证码,从而提高自动化测试…

AD20基础操作

1、编译检查项 需要重点检查的,设置为致命错误 点击Messages查看编译结果: 2、添加封装 快捷键M,选择X,Y移动选择对象 编辑偏移量后确定。 另一种快捷方式: CtrlD查看3D模型

【无标题“零元购”这个适应新时代的线上模式你应该要了解下】

不是XX买不起,而是XX更有性价比! 最近大家应该常听这句话,例如什么不是星X克买不起,而是瑞X更有性价比之类的话语。那么大家有认真思考下为什么这句话会在这个全民消费时代从大部分的国民口中流传出来吗? 根据2023.3.15的一篇中国…

Java操作windows系统功能(二)

Java可以通过调用Windows系统的API来操作Windows,实现一些基本的操作,例如打开、关闭窗口、创建文件夹、复制、删除文件等。 具体操作可以引入Java的java.awt和java.awt.event包,并使用java.awt.Desktop类来进行操作。 以下是一些常用的操作…

Grid布局:手机桌面图标或小组件随机布局

转载: 有时候,使用Grid布局会很方便 需求: 现在的手机桌面上,可以自定义的放一些App图标,也可以添加很多小组件。一个桌面,它会有4列的图标,然后在这些桌面上可以任意添加小组件。小组件可能是…

评价机器学习模型的指标

为了衡量一个机器学习模型的好坏,需要给定一个测试集,用模型对测试集中的每一个样本进行预测,并根据预测结果计算评价分数。 对于分类问题,常见的评价标准有准确率、精确率、召回率和F值等。给定测试集 𝒯 {(&#x1…

用bash写脚本

本章主要介绍如何使用bash写脚本。 了解通配符 了解变量 了解返回值和数值运算 数值的对比 判断语句 循环语句 grep的用法是“grep 关键字 file”,意思是从file中过滤出含有关键字的行。 例如,grep root /var/log/messages,意思是从/var/log/…

LabVIEW在燃气轮机发电机组励磁控制系统测试中的应用

LabVIEW在燃气轮机发电机组励磁控制系统测试中的应用 燃气轮机发电机组作为一种高效可靠的常备应急电源,在保障发电品质稳定性和可靠性方面发挥着关键作用。其中,励磁控制系统是保证供电质量的重要环节,对发电机组的稳定运行至关重要。为了有…

【C语言】自定义类型——枚举、联合体

引言 对枚举、联合体进行介绍,包括枚举的声明、枚举的优点,联合体的声明、联合体的大小。 ✨ 猪巴戒:个人主页✨ 所属专栏:《C语言进阶》 🎈跟着猪巴戒,一起学习C语言🎈 目录 引言 枚举 枚举…

Pytorch深度强化学习案例:基于Q-Learning的机器人走迷宫

目录 0 专栏介绍1 Q-Learning算法原理2 强化学习基本框架3 机器人走迷宫算法3.1 迷宫环境3.2 状态、动作和奖励3.3 Q-Learning算法实现3.4 完成训练 4 算法分析4.1 Q-Table4.2 奖励曲线 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理,并且采用Pytorch框架对常见…

flowable工作流学习笔记

不同版本使用方式不一样,案例使用两个版本6.5.0及6.6.0,学习中6.5.0 版本是独立框架(服务单独部署)使用的, 6.6.0与springboot集成, 6.5.0版本如下: 下载flowable: https://github.com/flowa…

kubernetesr安全篇之云原生安全概述

云原生 4C 安全模型 云原生 4C 安全模型,是指在四个层面上考虑云原生的安全: Cloud(云或基础设施层)Cluster(Kubernetes 集群层)Container(容器层)Code(代码层&#xf…

电商API接口接入|电商系统中的商品功能就该这么设计,稳的一批!

商品功能作为电商系统的核心功能,它的设计可谓是非常重要的。就算不是电商系统中,只要是涉及到需要交易物品的项目,商品功能都具有很好的参考价值。今天就以mall项目中的商品功能为例,来聊聊商品功能的设计与实现。 mall项目简介 …

你必须知道的低代码和低代码代表厂商!

自低代码进入中国市场以来,已经有不少年头。低代码(Low-Code)是一种软件开发方法,它使得开发人员能够通过图形界面、拖放组件和模型驱动的逻辑,快速地构建和部署应用程序,而无需编写大量的代码。 低代码开…

减速机振动相关标准 - 笔记

参考标准:国家标准|GB/T 39523-2020 减速机的振动标准与发动机不同,摘引: 原始加速度传感器波形 可以明显看到调幅波 它的驱动电机是300Hz~2000Hz范围的。这个采样时间是5秒,看分辨率至少1024线。可分出500条谱线。 频谱部分 …

大模型上下文扩展之YaRN解析:从RoPE、到ALiBi、位置插值、到YaRN

前言 下半年以来,我全力推动我司大模型项目团队的组建,我虽兼管整个项目团队,但为了并行多个项目,最终分成了三个项目组,每个项目都有一个项目负责人,分别为霍哥、阿荀、朝阳 在今年Q4,我司第…

经纬恒润AUTOSAR成功适配曦华科技国产车规级芯片

近日,经纬恒润AUTOSAR基础软件产品INTEWORK-EAS-CP成功适配曦华科技的蓝鲸CVM014x系列车规级MCU芯片。同时,经纬恒润完成了对曦华科技开发板的MCAL软件适配和工程集成,为曦华科技提供了全套AUTOSAR解决方案。 基于蓝鲸CVM014x适配经纬恒润AUT…

微信万能表单源码系统 自定义你的表单系统+完整代码包+安装部署教程

表单系统已经成为了网站、APP等应用中不可或缺的一部分。无论是注册、登录、反馈还是其他各种场景,都需要表单来收集用户信息。然而,传统的表单系统往往存在着一些问题,如功能单一、扩展性差、维护困难等。 以下是部分代码示例: …

ArkTS 状态管理@Prop、@Link

当父子组件之间需要数据同步的时候,可以使用Prop和Link装饰器。 实现的案例之中,代码时平铺直叙的,阅读性可理解性比较差。我们应改遵循组件化开发的思想。 在我们使用组件开发的时候,遇到数据同步问题的时候,State状态…