STM32的独立看门狗详解

目录

1.独立看门狗是什么?

2.独立看门狗的作用

3.独立看门狗的实现原理

4.独立看门狗用到的寄存器

4.1  IWDG_KR (关键字计时器)

4.2  IWDG_PR(预分频寄存器)

4.3  IWDG_RLR(重装载寄存器)

5.独立看门狗实现代码

5.1 初始化代码

5.2喂独立看门狗


1.独立看门狗是什么?

STM32的独立看门狗(Independent Watchdog,简称IWDG)是一个完全独立的低功耗硬件定时器,它由一个专用的低速时钟(LSI,Low Speed Internal clock)驱动。这个时钟是独立于主时钟系统的,因此即使在主时钟失效的情况下,独立看门狗依然能够继续工作。

2.独立看门狗的作用

STM32的独立看门狗的主要功能是监控MCU的运行状态,并在系统发生故障或死锁时,通过产生复位信号来重新启动系统。如果要保持系统不重启,需要通过不断地“喂狗”(即更新看门狗计数器的值)来实现。如果在预设的时间窗口内没有“喂狗”,那么看门狗计数器就会溢出,从而触发复位操作。

3.独立看门狗的实现原理

独立看门狗由内部低速时钟(LSI)驱动的,LSI实际时钟是一个 15~47Khz之间不精确的时钟,因为看门狗不需要那么高的精度,所以并不影响使用,独立看门狗其实就是一个十二位的计数器,只要这个计数器减少成0,就会触发MCU重启。

4.独立看门狗用到的寄存器

4.1  IWDG_KR (关键字计时器)

(1)在 IWDG_KR中写入 0xCCCC 开启独立看门狗

(2)在 IWDG_KR中写入 0xAAAA  ,IWDG_RLR 中的值就会被重新加载到独立看门狗的计数器,避免MCU发生重启。

(3)在IWDG_KR 中写入 0x5555 可以开启IWDG_PR 和 IWDG_RLR 寄存器的写入功能,因为这两个寄存器的写入功能是被保护的,需要先开启写入功能。

4.2  IWDG_PR(预分频寄存器)

IWDG_PR是存储独立看门狗分频系数的寄存器,最小为4分频,最高为256分频

4.3  IWDG_RLR(重装载寄存器)

这个寄存器的低12位有效,就是每次发生喂狗以后,被装载到独立看门狗计数器里面的值。

5.独立看门狗实现代码

5.1 初始化代码

void IWDG_Init(u8 prer,u16 rlr)
{IWDG_Handler.Instance=IWDG;IWDG_Handler.Init.Prescaler=prer;	//设置IWDG分频系数IWDG_Handler.Init.Reload=rlr;		//重装载值HAL_IWDG_Init(&IWDG_Handler);		//初始化IWDG  HAL_IWDG_Start(&IWDG_Handler);		//开启独立看门狗
}

这里prer我们传入的分频系数是IWDG_PRESCALER_64(也就是4),rlr重载值我们设置的是500,根据公式时间计算(大概):Tout=((4*2^prer)*rlr)/32 (ms),代入进去就是64*500/32=1000ms,得出定时器的倒计时时间为1秒,如果1秒内不发生喂狗,那么MCU就会被重启,我们平时做嵌套函数等耗时工作的时候一定要注意及时喂狗,避免系统正常运行中被重启

5.2喂独立看门狗

void IWDG_Feed(void)
{   HAL_IWDG_Refresh(&IWDG_Handler); 	//喂狗
}

这个函数HAL库已经帮我们实现好了,我们注意及时调用就可以了。

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

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

相关文章

接口调用的三种方式

例子: curl --location http://110.0.0.1:1024 \ --header Content-Type: application/json \ --data {"task_id": 1 }方式一:postman可视化图形调用 方式二:Vscode中powershell发送请求 #powershell (psh) Invoke-WebRequest -U…

温州海经区管委会主任、乐清市委书记徐建兵带队莅临麒麟信安调研

7月8日上午,温州海经区管委会主任、乐清市委书记徐建兵,乐清市委常委、副市长叶序锋,乐清市委办主任郑志坚一行莅临麒麟信安调研,乐清市投资促进服务中心及湖南省浙江总商会相关人员陪同参加。麒麟信安董事长杨涛、总裁刘文清热情…

elasticsearch集群模式部署

系统版本:CentOS Linux release 7.9.2009 (Core) es版本: elasticsearch-7.6.2 本次搭建es集群为三个节点 添加启动用户 添加之前用户要是创建好了的(这里的es用户并不是绝对要求,你可以根据具体的需要命名创建) visudo 修改配置文件 sys…

【吊打面试官系列-MyBatis面试题】使用 MyBatis 的 mapper 接口调用时有哪些要求?

大家好,我是锋哥。今天分享关于 【使用 MyBatis 的 mapper 接口调用时有哪些要求?】面试题,希望对大家有帮助; 使用 MyBatis 的 mapper 接口调用时有哪些要求? 1、Mapper 接口方法名和 mapper.xml 中定义的每个 sql 的…

数据结构(初阶1)

文章目录 一、复杂度概念 二、时间复杂度 2.1 大O的渐进表示法 2.2 时间复杂度计算示例 2.2.1. // 计算Func2的时间复杂度? 2.2.2.// 计算Func3的时间复杂度? 2.2.3.// 计算Func4的时间复杂度? 2.2.4.// 计算strchr的时间复杂度? …

面对数据不一致性的解决方案:

polarDB是读写分离和计算存储分离的分布式数据库,并且副本的log replicate是基于Parallel-Raft协议来实现的。所以在瞬时进行写和读的操作时,是不可避免会存在数据一致性问题,导致这个数据一致性问题的原因不是事务,而是多副本日志…

springboot篮球馆管理系统-计算机毕业设计源码21945

目 录 摘要 1 绪论 1.1选题背景 1.2研究意义 1.3论文结构与章节安排 2 篮球馆管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4 …

数据结构--二叉树收尾

1.二叉树销毁 运用递归方法 分类: 根节点左子树右子树(一般都是这个思路,不断进行递归即可) 选择方法(分析): 前序:如果直接销毁根就无法找到左子树右子树 中序:也会导致丢失其…

【算法】(C语言):快速排序(递归)、归并排序(递归)、希尔排序

快速排序(递归) 左指针指向第一个数据,右指针指向最后一个数据。取第一个数据作为中间值。右指针指向的数据 循环与中间值比对,若大于中间值,右指针往左移动一位,若小于中间值,右指针停住。右…

红酒的奇幻之旅:从葡萄园到酒杯的魔法

在世界的某个角落,隐藏着一场关于红酒的奇幻之旅。这是一场从葡萄园到酒杯的魔法变幻,将大自然的馈赠与人类的智慧很好结合,最终呈现在我们眼前的,是一杯散发着迷人香气的雷盛红酒。 一、葡萄园的魔法启幕 当清晨的第一缕阳光洒落…

windows server 2019 更新补丁

1 点击 搜索按键--windows 更新设置 2 点击 安装补丁 3 安装完成,重新启动服务器

算法小练之 位运算基础

前言 今天正式走入,位运算这个章节,关于这一部分我会先介绍几个重要的知识点,然后再根据几个力扣上的题来讲解。 了解6种位操作 总所周知,变量在计算机中都是二进制存储的,比如一个变量int a 1; 它的存…

nvidia driver和cuda版本较低,ubuntu系统更新nvidia驱动的方法(对于小白最快最最保险的方法)

问题描述: 系统:ubuntu22.04LTS 这两天安装另一个低版本的pytorch环境,提示我的cuda版本很旧,然后运行程序时候甚至直接报错,如下所示: .local/lib/python3.10/site-packages/torch/cuda/__init__.py&quo…

高通开发系列 - 使用QFIL工具单刷某个镜像文件

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 返回:专栏总目录 目录 背景过程记录背景 有时候设备中刷的是user版本,无法使用fastboot刷单个镜像,这个时候该怎么办呢? 要解决在user…

Linux 一键部署Mysql 8.4.1 LTS

mysql 前言 MySQL 是一个基于 SQL(Structured Query Language)的数据库系统,SQL 是一种用于访问和管理数据库的标准语言。MySQL 以其高性能、稳定性和易用性而闻名,它被广泛应用于各种场景,包括: Web 应用程序:许多动态网站和内容管理系统(如 WordPress)使用 MySQL 存…

Python从0到100(三十五):beautifulsoup的学习

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

【网络安全科普】网络安全指南请查收

随着社会信息化深入发展,互联网对人类文明进步奖发挥更大的促进作用。但与此同时,互联网领域的问题也日益凸显。网络犯罪、网络监听、网络攻击等是又发生,网络安全与每个人都息息相关,下面,一起来了解网络安全知识吧。…

锐捷统一上网行为管理与审计系统static_convert接口远程命令执行漏洞复现 [附POC]

文章目录 锐捷统一上网行为管理与审计系统static_convert接口远程命令执行漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 锐捷统一上网行为管理与审计系统static_convert接口远程命令执行漏洞复现 [附POC] 0x…

如何快速将Excel定义的表结构转换为MySQL的建表语句

目录 引言 方法一:使用Python编程 步骤一:安装必要的库 步骤二:读取Excel文件 步骤三:编写函数生成建表语句 注意事项 方法二:使用Excel VBA 步骤一:启用VBA编辑器 步骤二:编写VBA代码…

共筑智能未来 | 思腾合力闪耀2024世界人工智能大会(WAIC 2024)

在刚刚结束的2024世界人工智能大会暨人工智能全球治理高级别会议(WAIC 2024)上,思腾合力作为行业领先的人工智能基础架构解决方案提供商,凭借卓越的产品和解决方案,成为展会上的亮点之一。此次盛会不仅展示了全球人工智…