STM32复习笔记(四):看门狗

目录

(一)简介

(二)IWDG

IWDG的CUBEMX工程配置

IWDG相关函数(非常少,所以直接贴上来):

(三)WWDG 


(一)简介

看门狗分为独立看门狗(IWDG)和窗口看门狗(WWDG)

(二)IWDG

独立看门狗本质是一种定时器,其作用是监视系统的运行,当系统发生错误(如程序卡死)时,能自动让系统复位;观察cubemx中的时钟树可以发现,IWDG是由LSI提供32KHz的时钟,而IWDG内部可以对LSI时钟进行分频,预分频系数从4~256(须为2的次幂);并且系统复位时,IWDG的12位递减计数器初值为4095,在启动IWDG后,计数器递减计数,当计数值为0时,系统复位;所以如果程序正常运行的话,必须在规定时间里刷新IWDG内递减计数器的值(这就是大家说的“喂狗”),以防止系统复位;另外,根据预分频系数可以算出IWDG的最长超时,如下表所示;计算方法为:T = 1 / (32KHz / 预分频系数)* 4096(注意K表示10e3,k才是2e10);

重载值为4095时IWDG的超时
预分频系数超时/ms
/4512
/81024
/162048
/324096
/648192
/12816384
/25632768

IWDG使用方法非常简单,只需要在计数值减为0之前,按时喂狗即可,否则就会重启系统(常称为“狗叫”);

IWDG的CUBEMX工程配置

在cubemx中,只需要开启IWDG,并配置预分频系数和递减计数值即可:

IWDG相关函数(非常少,所以直接贴上来):

1、初始化:HAL_StatusTypeDef    HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg);初始化之后自动启动;

2、喂狗:HAL_StatusTypeDef    HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg);

3、宏:__HAL_IWDG_START(__HANDLE__) ;启动iwdg,启动后不可关闭;

4、宏:__HAL_IWDG_RELOAD_COUNTER(__HANDLE__);重置计数值,也就是喂狗;

5、宏:IWDG_ENABLE_WRITE_ACCESS(__HANDLE__);使预分频reg和重载reg可写入;

6、宏:IWDG_DISABLE_WRITE_ACCESS(__HANDLE__);使预分频reg和重载reg不可写入;

IWDG使用方法非常简单,只需要在计数值减为0之前,按时喂狗即可,否则就会重启系统(常称为“狗叫”);


(三)WWDG 

窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。也就是要求某段程序在限定的时间内执行完毕,否则复位系统,防止程序跑飞。

IWDG和WWDG的区别可以参考这个大佬的这篇文章,讲得非常详细了。

完~


以上均为个人学习心得,如有错误,请不吝赐教~

THE END

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

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

相关文章

【图像处理GIU】图像分割(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

PLL锁相环倍频原理

晶振8MHz,但是处理器输入可以达到72MHz,是因为PLL锁相环提供了72MHz。 锁相环由PD(鉴相器)、LP(滤波器)、VCO(压控振荡器)组成。 处理器获得的72MHz并非晶振提供,而是锁…

mysql八股

1、请你说说mysql索引,以及它们的好处和坏处 检索效率、存储资源、索引 索引就像指向表行的指针,是一个允许查询操作快速确定哪些行符合WHERE子句中的条件,并检索到这些行的其他列值的数据结构索引主要有普通索引、唯一索引、主键索引、外键…

代码随想录算法训练营第五十九天 | 647. 回文子串 516.最长回文子序列

1. 回文子串 647. 回文子串 - 力扣(LeetCode) 一个子串左右两个元素相等,并且中间对称,才是回文子串 即 ij 时,[i1: j-1]对称 dp[i][j]: [i:j] 是否是回文字串 当 子串长度大于2 由 dp[i1][j-1] 推出…

mybatis项目启动报错:reader entry: ���� = v

问题再现 解决方案一 由于指定的VFS没有找,mybatis启用了默认的DefaultVFS,然后由于DefaultVFS的内部逻辑,从而导致了reader entry乱码。 去掉mybatis配置文件中关于别名的配置,然后在mapper.xml文件中使用完整的类名。 待删除的…

第P8周—YOLOv5-C3模块实现

>- **🍨 本文为[🔗365天深度学习训练营](https://mp.weixin.qq.com/s/Nb93582M_5usednAKp_Jtw) 中的学习记录博客** >- **🍖 原作者:[K同学啊 | 接辅导、项目定制](https://mtyjkh.blog.csdn.net/)** >- **🚀…

基于遗传算法的新能源电动汽车充电桩与路径选择(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

数据结构与算法(三):栈与队列

参考引用 Hello 算法 Github:hello-algo 1. 栈 1.1 栈的概念 栈(stack)是一种遵循先入后出的逻辑的线性数据结构 可以将栈类比为桌面上的一摞盘子,如果需要拿出底部的盘子,则需要先将上面的盘子依次取出 如下图所示&…

【Pandas】数据分组groupby

本文目标: 应用groupby 进行分组对分组数据进行聚合,转换和过滤应用自定义函数处理分组之后的数据 文章目录 1. 数据聚合1.1 单变量分组聚合1.2 Pandas内置聚合方法1.3 聚合方法使用Numpy的聚合方法自定义方法同时计算多种特征向agg/aggregate传入字典 2. 数据转换…

Gmail 将停止支持基本 HTML 视图

根据 Google 支持文档的更新内容,Gmail 将从明年 1 月起停止支持基本 HTML 视图。 ▲ Gmai 基本 HTML 视图界面 目前网页版 Gmail 提供两个界面:基本 HTML 视图和标准视图。停止支持基本 HTML 视图后,当前打开经典模式的基本 HTML 视图模式 …

ChatGPT基础使用总结

文章目录 一、ChatGPT基础概念大型语言模型LLMs---一种能够以类似人类语言的方式“说话”的软件ChatGPT定义---OpenAI 研发的一款聊天机器人程序(2022年GPT-3.5,属于大型语言模型)ChatGPT4.0---OpenAI推出了GPT系列的最新模型ChatGPT典型使用…

【实操记录】Oracle数据整库同步至Apache Doris

本文是Oracle数据整库同步至Apache Doris实操记录,仅供参考 参考:https://cn.selectdb.com/blog/104 1、Oracle 配置 [rootnode1 oracle]# pwd /u01/app/oracle [rootnode1 oracle]# mkdir recovery_area [rootnode1 oracle]# chown -R oracle:dba re…

CleanMyMac X4.14.1最新版本下载

CleanMyMac X是一个功能强大的Mac清理软件,它的设计理念是提供多个模块,包括垃圾清理、安全保护、速度优化、应用程序管理和文档管理粉碎等,以满足用户的不同需求。软件的界面简洁直观,让用户能够轻松进行日常的清理操作。 使用C…

C/S架构学习之TCP的三次握手和四次挥手

TCP的三次握手:一定由客户端主动发起的,发生在建立连接的过程中。此过程发生在客户端的connect()函数和服务器的accept()函数之间。第一次握手:客户端向服务器发送一个带有SYN标志的数据包,表示客户端请求建立连接。并且客户端会选…

GEE土地分类——Property ‘B1‘ of feature ‘LE07_066018_20220603‘ is missing.错误

简介: 我正在尝试使用我在研究区域中选择的训练点对图像集合中的每个图像进行分类。就背景而言,我正在进行的项目正在研究陆地卫星生命周期内冰川面积的变化以及随后的植被变化。这意味着自 1984 年以来,我正在处理大量图像,每年一…

卷积神经网络-池化层和激活层

2.池化层 根据特征图上的局部统计信息进行下采样,在保留有用信息的同时减少特征图的大小。和卷积层不同的是,池化层不包含需要学习的参数。最大池化(max-pooling)在一个局部区域选最大值作为输出,而平均池化(average pooling)计算一个局部区…

Elasticsearch数据操作原理

Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎,设计用于云计算环境中,能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性,可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个…

Apollo Planning2.0决策规划算法代码详细解析 (2): vscode gdb单步调试环境搭建

前言: apollo planning2.0 在新版本中在降低学习和二次开发成本上进行了一些重要的优化,重要的优化有接口优化、task插件化、配置参数改造等。 GNU symbolic debugger,简称「GDB 调试器」,是 Linux 平台下最常用的一款程序调试器。GDB 编译器通常以 gdb 命令的形式在终端…

抄写Linux源码(Day14:从 MBR 到 C main 函数 (3:研究 head.s) )

回忆我们需要做的事情: 为了支持 shell 程序的执行,我们需要提供: 1.缺页中断(不理解为什么要这个东西,只是闪客说需要,后边再说) 2.硬盘驱动、文件系统 (shell程序一开始是存放在磁盘里的,所以需要这两个东…

vertx的学习总结7之用kotlin 与vertx搞一个简单的http

这里我就简单的聊几句&#xff0c;如何用vertx web来搞一个web项目的 1、首先先引入几个依赖&#xff0c;这里我就用maven了&#xff0c;这个是kotlinvertx web <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apac…