STM32的看门狗(WDG)

WDG(Watchdog)看门狗

看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠性和安全性。

看门狗本质上是一个定时器,当指定时间范围内,程序没有执行喂狗(重置计数器)操作时,看门狗硬件电路就自动产生复位信号。

STM32内置两个看门狗

独立看门狗(IWDG):独立工作,对时间精度要求较低。(专用的LSI,40kHz,即使主时钟出现问题了,独立看门狗也可以正常工作)独立看门狗只有一个最晚喂狗界限,只要喂狗不超过这个界限就行,否则看门狗就会硬件复位电路。

窗口看门狗(WWDG):要求看门狗在精确计时窗口起作用。(使用APB1的时钟,即36MHz,没有专门的时钟,所以不算独立) 要求看门狗在精确计时窗口起作用,相当于有最早和最晚喂狗界限,提前喂狗和超过最晚界限都会产生复位。

注意事项

在大型项目中,各种状态和可能都非常多,写程序时一不小心就会留下bug,让你的程序卡死或崩溃。

解决办法:

1.程序员设计时就考虑程序运行的各种情况,避免常见的BUG,合理规划程序。

2.定期对程序进行迭代更新,修复存在的BUG。

3.看门狗,出现卡死/崩溃,让看门狗帮我们硬件复位一下。

硬件故障:例如想读取传感器的内容,但传感器坏了,程序就有可能死等去获取数据。

电磁干扰:强的电磁干扰可能让电子元器件失灵/程序跑飞的现象,有看门狗的话,程序进行复位,就会再次正常运行。

独立看门狗的框图

独立看门狗的框图与定时器很像,主要的部分都是预分频器PSC、自动重载器ARR、计数器CNT。

独立看门狗的预分频器(IWDG_PR)是8位的,最大值是2^8-1=255,最大可进行256分频。

独立看门狗的重装载寄存器和递减计数器是12位的,(IWDG_RLR)重装载数值与计数器值的最大值是2^12-1=4095,最多可计数4096次。

定时器的重要结构

需要注意的是定时器的PSC/ARR/CNT均为16位。

IWDG_KR寄存器

0xCCCC:1100 1100 1100 1100

0xAAAA:1010 1010 1010 1010

0x5555:0101 0101 0101 0101

IWDG_SR(状态寄存器)是可读不可写的。

IWDG超时时间

IWDG的预分频值有PR[2:0]决定,并不像定时器那样PSC值+1,而是有特定的预分频系数。

RL[11:0]由于是12位的,最小值是0,最大值是2^12-1,对应的计数值就是1-2^12(4096)。

WWDG框图

WWDG工作特性

超时时间是喂狗的最晚时间,即定时器减到0的时间。

窗口时间是最早的喂狗时间,由之前的框图,T[5:0]=W[5:0]时就可以喂狗了。

IWDG与WWDG对比

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

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

相关文章

基于C/C++的rapidxml加载xml大文件 - 下部分

下载地址: RapidXml (sourceforge.net)https://rapidxml.sourceforge.net/ 将源码添加到自己的工程中 示例测试大文件耗时: 总共293w行数据,大概耗时不到1s。

Paper Reading: (U2PL) 基于不可靠伪标签的半监督语义分割

目录 简介目标/动机方法Pseudo-LabelingUsing Unreliable Pseudo-Labels 补充知识InfoNCE LossOHEM 实验Comparison with Existing AlternativesAblationEffectiveness of Using Unreliable Pseudo-LabelsAlternative of Contrastive Learning 总结附录U2PL 与 negative learni…

【C语言程序设计】数组程序设计

目录 前言 一、数组的定义和初始化 二、数组的基本操作 三、数组的高级应用 四、程序设计 4.1 程序设计第一题 4.2 程序设计第二题 4.3 程序设计第三题 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助…

论文阅读《DPS-Net: Deep Polarimetric Stereo Depth Estimation》

论文地址:https://openaccess.thecvf.com/content/ICCV2023/html/Tian_DPS-Net_Deep_Polarimetric_Stereo_Depth_Estimation_ICCV_2023_paper.html 概述 立体匹配模型难以处理无纹理场景的匹配,现有的方法通常假设物体表面是光滑的,或者光照是…

设计模式(2)--对象创建(4)--原型

1. 意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 2. 两种角色 抽象原型(Prototype)、具体原型(Concrete Prototype) 3. 优点 3.1 对客户隐藏了具体的产品类 3.2 可以在运行时刻增加和删除产品 3.3 可以极大地减少系统所需要的类的数目 …

Weblogic-CVE-2023-21839

一、漏洞概述 RCE漏洞,该漏洞允许未经身份验证的远程,通过T3/IIOP协议网络访问并破坏WebLogic服务器,成功利用此漏洞可导致Oracle WebLogic服务器被接管,通过rmi/ldap远程协议进行远程命令执行,当 JDK 版本过低或本地存在小工具&…

@Scheduled任务调度/定时任务-非分布式

1、功能概述 任务调度就是在规定的时间内执行的任务或者按照固定的频率执行的任务。是非常常见的功能之一。常见的有JDK原生的Timer, ScheduledThreadPoolExecutor以及springboot提供的Schduled。分布式调度框架如QuartZ、Elasticjob、XXL-JOB、SchedulerX、PowerJob等。 本文…

出现 ‘mvn‘ 不是内部或外部命令,也不是可运行的程序或批处理文件 的解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 下载了Maven,也配置了环境,在环境变量中配置MAVEN_HOME,在用户变量中配置了bin变量 具体如下所示: 用户变量的配置: 结果显示如下所示: 2. 原理分析 HOME变量中会具体到jre变量,如果在用户变量中配置,jre可能…

SpringBoot+Vue3前后端快速整合入门

前言 最近需要维护一个个人项目,由于笔者是一个大后端,所以借此机会把前端学习过程记录一下,方便后续回顾。 前端项目初始化 安装npm 在前端项目初始化时,我们必须要安装好node,官网地址如下,因为笔者后…

数据结构实验任务八:排序算法的实现与分析

问题描述 统计成绩:给出 n 个学生的考试成绩表,每条信息由姓名和分数组成,试设 计一个算法: 1.按分数高低次序,打印出每个学生在考试中获得的名次,分数相同的为同 一名次; 2.按名次列出每个学生…

36V/48V转12V 10A直流降压DC-DC芯片-AH1007

AH1007是一款36V/48V转12V 10A直流降压(DC-DC)芯片,它是一种高性能的降压变换器,常用于工业、汽车和电子设备等领域。 AH1007采用了先进的PWM调制技术和开关电源控制算法,能够高效地将输入电压从36V/48V降低到12V&…

【Spark精讲】Spark内存管理

目录 前言 Java内存管理 Java运行时数据区 Java堆 垃圾回收机制 Executor内存管理 内存类型 堆内内存 堆外内存 内存管理模式 静态内存管理 统一内存管理 ​编辑 执行内存管理 多任务间内存分配 Shuffle 的内存占用 MemoryOverHead详解 任务内存调节 错误类型…

TCP/IP 四层体系结构

目录 ​编辑 导言: 应用层 1. HTTP(超文本传输协议) 2. FTP(文件传输协议) 3. SMTP(简单邮件传输协议) 4. POP3(邮局协议第3版) 5. IMAP(互联网消息访…

群晖(Synology)新建存储池使用 Home 服务

每一个用户都可以有一个自己的 Home 服务。 这个在群晖存储新建存储池后可以自动启用这个服务。 启用后,可以看到你的文件系统中有一个 homes 的文件了。 群晖(Synology)新建存储池使用 Home 服务 - 系统容器 - iSharkFly每一个用户都可以有…

尚硅谷JavaWeb电子书城项目(Java+Mysql+Tomcat+Jsp)

自己写的在线电子书城项目,可改写,添加功能,如打折,分类,用户管理,评论等功能。 使用方法: 1.使用idea导入项目。 2.数据库要用项目resource文件里的book.sql文件建立。 3.修改jdbc.properi…

【从零开始学习JVM | 第八篇】学习垃圾回收算法 和 垃圾回收器

前言: 现代编程语言通常采用垃圾回收机制来自动管理内存。垃圾回收机制是一种自动化的内存管理技术,可以在程序运行时自动识别和回收不再使用的内存,从而减少内存泄漏和其他内存相关问题的发生。 本文将介绍垃圾回收算法和垃圾回收器的相关…

【产品】Axure的基本使用(二)

文章目录 一、元件基本介绍1.1 概述1.2 元件操作1.3 热区的使用 二、表单型元件的使用2.1 文本框2.2 文本域2.3 下拉列表2.4 列表框2.5 单选按钮2.6 复选框2.7 菜单与表格元件的使用 三、实例3.1 登录2.2 个人简历 一、元件基本介绍 1.1 概述 在Axure RP中,元件是…

模块四(一):搭建自己的SSR

前言:同构渲染是将服务器渲染和客户端渲染相结合的一种渲染方式,在服务端生成初始页面,提升首屏加载速度,并且有利于SEO;在客户端接管HTML,并且将静态HTML激活为数据绑定的动态HTML,为用户提供更…

算法通关村第五关—LRU的设计与实现(黄金)

LRU的设计与实现 一、理解LRU的原理 LeetCode146:运用你所掌握的数据结构,设计和实现一个LRU(最近最少使用)缓存机制 实现LRUCache类: LRUCache(int capacity) 以正整数作为容量capacity初始化 LRU 缓存 int get(int key) 如果关键字key存在于缓存中&a…

节流防抖:提升前端性能的秘密武器(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…
最新文章