STM32学习(九)

IWDG的本质

Independent watchdog,即独立看门狗。
本质是:能产生系统复位信号的计时器。

  1. 递减的计数器。
  2. 时钟由独立的RC振荡器提供(不是来自于主时钟HSE或HSI),可在待机或者停止模式下运行。
  3. 看门狗被激活后,当递减计数器计数到0x000时产生复位。

喂狗:在计数器计数到0之前,重装载计数器的值,防止复位。

当发生以下任一事件时,产生一个系统复位:

  1. NRST引脚上的低电平
  2. 窗口看门狗计数终止(WWDG复位)
  3. 独立看门狗计数终止(IWDG复位)
  4. 软件复位(SW复位)
  5. 低功耗管理复位

IWDG的作用

异常:单片机在运行时可能由于外界电磁干扰或者自身系统(硬件或软件)异常,导致程序跑飞,如:陷入某个不正常的死循环(死机),打断正常的程序运行。
作用:检测外界电磁干扰,或硬件异常导致的程序跑飞问题。(软件异常由WWDG解决)
应用:在一些高稳定性的产品中,并且对时间精度要求较低(IWDG来源于RC振荡器,RC振荡器时钟频率不太稳定)。

独立看门狗是异常处理的最后手段,不可依赖,应在设计时尽量避免异常的发生。

IWDG工作原理

在这里插入图片描述
CPU必须及时喂狗,否则系统复位重启!
在这里插入图片描述
LSI:低速内部振荡器(RC振荡器),启用IWDG后,LSI时钟会自动开启。LSI时钟频率并不精确,F1用40kHz。
12位递减计数器,最大能装4095值。
密钥寄存器:进行解锁。

IWDG寄存器

键寄存器(IWDG_KR)
在这里插入图片描述

  1. 用于喂狗。
  2. 解除PR寄存器和PLR寄存器写访问保护。
  3. 启动看门狗工作。

硬件看门狗:系统复位后,看门狗会由硬件自动启动,且不能关闭。
软件看门狗:由在IWDG_KR写入0xCCCC,启动看门狗工作。

预分频器寄存器(IWG_PR)
在这里插入图片描述

重装载寄存器(IWDG_RLR)
在这里插入图片描述

状态寄存器(IWDG_SR)
在这里插入图片描述
用于判断预分频值和重装载值是否已经被更新。

寄存器配置操作

  1. 通过在键寄存器(IWDG_KR)中写入0xCCCC来使能IWDG。
  2. 通过在键寄存器(IWDG_KR)中写入0x5555来使能寄存器访问。
  3. 通过将预分频器寄存器(IWDG_PR)编程为0~7中的数值来配置预分频器。
  4. 对重载寄存器(IWDG_RLP)进行写操作。
  5. 等待寄存器更新(IWDG_SR=0x0000 0000)。
  6. 刷新计数器值为IWDG_RLP的值当IWDG_KR=0xAAAA。——喂狗

IWDG溢出时间计算

在这里插入图片描述
Tout是看门狗溢出时间
fIWDG是看门狗的时钟源频率
psc是看门狗预分频系数
rlr是看门狗重装载值

寄存器设置分频系数的方法
在这里插入图片描述
prer是IWDG_PR 的值

IWDG溢出时间计算公式(寄存器)
在这里插入图片描述

IWDG最短最长超时时间

在这里插入图片描述

IWDG配置步骤

  1. 取消PR/RLP寄存器写保护,设置IWDG的预分频系数和重装载值,启动IWDG。HAL_IWDG_Init()
  2. 及时喂狗,写入0xAAAA到IWDG_KR。HAL_IWDG_Refresh()

在这里插入图片描述

typedef struct{
	IWDG_TypeDef *Instance;//IWDG寄存器基地址
	IWDG_InitTypeDef Init; //IWDG初始化参数
}IWDG_HandleTypeDef;
typedef struct{
	uint32_t Prescaler;//预分频系数
	uint32_t Reload; //重装载值
}IWDG_InitTypeDef;

验证不及时喂狗,系统将复位重启

在这里插入图片描述

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

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

相关文章

【云原生 • Docker】cAdvisor+Prometheus+Grafana 10分钟搞定Docker容器监控平台

文章目录cAdvisorPrometheusGrafana 10分钟搞定Docker容器监控平台cAdvisor部署Prometheus部署Grafana部署cAdvisorPrometheusGrafana 10分钟搞定Docker容器监控平台 cAdvisor(Container Advisor) 是 Google 开源的一个容器监控工具,可用于对容器资源的使用情况和性…

【网络安全必备知识】本地提权漏洞分析

0. 前言 CVE-2023-21752 是 2023 年开年微软第一个有 exploit 的漏洞,原本以为有利用代码会很好分析,但是结果花费了很长时间,难点主要了两个:漏洞点定位和漏洞利用代码分析,欢迎指正。 1. 漏洞简介 根据官方信息&a…

【数据结构】二叉树的遍历以及基本操作

目录 1.树形结构 1.概念 2.二叉树 2.1概念 2.2 两种特殊的二叉树 2.3二叉树的存储 2.4二叉树的基本操作 1.手动快速创建一棵简单的二叉树 2.二叉树的遍历 (递归) 3.二叉树的层序遍历 4.获取树中节点的个数 5.获取叶子节点的个数 6.获取第K层节点的个数 7.获取二叉…

Python深度学习实战:人脸关键点(15点)检测pytorch实现

引言 人脸关键点检测即对人类面部若干个点位置进行检测,可以通过这些点的变化来实现许多功能,该技术可以应用到很多领域,例如捕捉人脸的关键点,然后驱动动画人物做相同的面部表情;识别人脸的面部表情,让机…

线程池的讲解和实现

🚀🚀🚀🚀🚀🚀🚀大家好,今天为大家带来线程池相关知识的讲解,并且实现一个线程池 🌸🌸🌸🌸🌸🌸🌸🌸…

DM的学习心得和知识总结(一)|DM数据库Real Application Testing之Database Reply实操(一)

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、达梦数据库产品及解决方案,点击前往 2、达梦技术文档,点击前往 3、武汉达梦数据库有限公司 官网首页,点击前往 1、本文内容全部…

OpenFeign#1 - FeignClient 是如何注册的?

文章目录EnableFeignClientsFeignClientsRegistrarregisterDefaultConfigurationregisterFeignClientsFeignClientFeignClientFactoryBeanFeignContextfeign(FeignContext)EnableFeignClients 该注解会导致 FeignClientsRegistrar 的注入. Retention(RetentionPolicy.RUNTIME…

如何用canvas制作一个华容道小游戏(乞丐版)

我大抵是废了φ(..) ,横竖都学不进去,上课知识不进脑子,学习光想划水摸鱼,心中仅剩的良知告诉我这样下去是铁定不行的哇,既然学不进去,何不打把游戏,既然要打游戏&#x…

HTML5 Video(视频)

HTML5 Video(视频) 在本节内容中,你将了解到在HTML5中视频是如何工作的、主流浏览器支持的视频格式以及如何对网页中的视频进行控制。 很多站点都会使用到视频. HTML5 提供了展示视频的标准。 检测您的浏览器是否支持 HTML5 视频: Web站点上的视频 直…

SeNet论文解读/总结

此文章为深度学习在计算机视觉领域的图片分类经典论文SeNet(Squeeze-and-Excitation Networks)论文总结。 此系列文章是非常适合深度学习领域的小白观看的图像分类经典论文。系列文章如下: AlexNet:AlexNet论文解读/总结_alexnet…

在CentOS上安装Docker引擎

1,先决条件#### 1-1操作系统要求1-2 卸载旧版本 2,安装方法2-1使用存储库安装设置存储库安装 Docker 引擎 本文永久更新地址: 官方地址:https://docs.docker.com/engine/install/centos/ 1,先决条件 #### 1-1操作系统要求 要安装 Docker Engine,您需要…

【基础算法】链表相关题目

系列综述: 💞目的:本系列是个人整理为了秋招算法的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于代码随想录进行的,每个算法代码参考leetcode高赞回答和…

官宣|Apache Flink 1.17 发布公告

Apache Flink PMC(项目管理委员)很高兴地宣布发布 Apache Flink 1.17.0。Apache Flink 是领先的流处理标准,流批统一的数据处理概念在越来越多的公司中得到认可。得益于我们出色的社区和优秀的贡献者,Apache Flink 在 Apache 社区…

STM32F407控制微型推拉式电磁铁(通过继电器)

1、继电器 继电器相当于开关,单片机通过io口高低电平的控制来控制继电器的开闭。采用继电器的好处除了能够用低电压控制高电压(如32单片机控制220V的电压)外,还可以防止电流反冲,弄烧单片机。 本文采用3.3v的电磁铁&am…

三、MyBatis核心配置文件详解

核心配置文件中的标签必须按照固定的顺序(有的标签可以不写,但顺序一定不能乱): properties、settings、typeAliases、typeHandlers、objectFactory、objectWrapperFactory、reflectorFactory、plugins、environments、databaseIdProvider、mappers 一、…

b01lers(php.galf)

目录 前文 正文 前文 <?phpclass A{public $codeNULL;public $argsNULL;public function __construct($code,$argsNULL){$this->code$code;$this->args$args;print_r("2333") ;} public function __invoke($code,$args){echo $code;print_r("执行inv…

记一次若依后台管理系统渗透

前言 最近客户开始hw前的风险排查&#xff0c;让我们帮他做个渗透测试&#xff0c;只给一个单位名称。通过前期的信息收集&#xff0c;发现了这个站点&#xff1a; 没有验证码&#xff0c;再加上这个图标&#xff0c;吸引了我注意&#xff1a; 从弱口令开始 若依默认口令为ad…

Android 12.0 Settings主页面去掉FocusRecyclerView相关功能

1.前言 在12.0的系统rom产品定制化开发中,在系统Settings主页面的主菜单中,在测试某些功能的时候,比如开启护眼模式和改变系统密度会在主菜单第一项的网络菜单头部增加 自定义您的设备和设置护眼模式时间安排 等等相关的设置模块 这对于菜单布局显示相当不美观,所以根据系…

机器学习---降维算法

知其然知其所以然【写在前面】主成分分析&#xff08;PCA&#xff09;原理部分代码部分可视化部分线性判别分析&#xff08;LDA&#xff09;原理部分代码部分可视化部分独立成分分析&#xff08;ICA&#xff09;原理部分代码部分可视化部分t-SNE降维算法原理部分代码部分可视化…

请求响应数据?Controler层注解!

目录1. 请求1.1概述1.2 简单参数1.2.1 原始方式1.2.2 SpringBoot方式1.2.3 参数名不一致1.3 实体参数1.3.1 简单实体对象1.3.2 复杂实体对象1.4 数组集合参数1.4.1 数组1.4.2 集合1.5 日期参数1.6 JSON参数1.7 路径参数2. 响应2.1 ResponseBody2.2 统一响应结果1. 请求 1.1概述…