STM32—独立看门狗(IWDG)

news2024/10/3 10:36:22

什么是看门狗?

在由单片机构成的微型计算机系统中,由于单片机的工作常常会收到来自外界电磁场的干扰,造成程序跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统陷入停滞状态,发生不可预料的后果。所以出于对单片机运行状态进行实时检测的考虑,便产生了一种专门用于监测单片机程序状态的模块或者芯片,俗称看门狗。
独立看门狗工作在主程序之外,能够完全独立工作,它的时钟是专用的低速时钟(LSI),由VDD电压供电,在停止模式和待机模式下仍能工作。

独立看门狗的本质

本质就是一个12位的递减计数器,当计数器的值从某一个值一直递减到0的时候,系统就会产生一个复位信号,即IWDG_RESET
如果在计数器没减到0之前,刷新了计数器的值的话,那么就不会产生复位信号,那么这个动作技术我们常说的喂狗。
独立看门狗的框图
在这里插入图片描述

独立看门狗的时钟

独立看门狗的时钟由独立的RC振荡器LSI提供,即使主时钟发生故障它仍然有效,非常独立。启用IWDG后,LSI时钟会自动开启。LSI时钟频率并不精确,F1用40kHz。
LSI经过一个8位的预分频器得到计数器时钟。
在这里插入图片描述
分频系数算法:prer是IWDG_PR 的值。
在这里插入图片描述
重装载寄存器
重装载寄存器是一个12位的寄存器,用于存放重装载值,低12位有效,即最大值为4096,这个值的大小决定着独立看门狗的溢出时间。
在这里插入图片描述
键寄存器
键寄存器IWDG_KR可以说是独立看门狗的一个控制寄存器,主要有三种控制方式,往这个寄存器写入下面三个不同的值有不同的效果。
在这里插入图片描述
溢出时间计算公式
在这里插入图片描述

独立看门狗实验

需求:
开启独立看门狗,溢出时间为1秒,使用按键1进行喂狗。通过串口查看现象
硬件接线:
KEY1 – PA0
UART1 – PA9/PA10
溢出时间计算:
F1为40kHz
PSC=64,RLR=625

#include <string.h>

main函数:

HAL_UART_Transmit(&huart1, "程序启动。。\n", strlen("程序启动。。\n"), 100);

while (1)
{

 /* USER CODE END WHILE */

 /* USER CODE BEGIN 3 */

 if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET)

 HAL_IWDG_Refresh(&hiwdg);

 HAL_Delay(50);
}

现象:key1不按下(不喂狗),独立看门狗就每隔一秒就复位一遍,key1按下(进行喂狗),刷新了计数器的值,系统正常运行。

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

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

相关文章

Python Unittest框架

1、unittest简介 unittest是Python自带的单元测试框架,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件,主要适用于单元测试,可以用来作自动化测试框架的用例组织执行框架。 2、unittest框架的特性: 提供用例组织与执行:当测试用例只有几条的时候可以不考虑…

notepad++如何快速批量搜索复制,3步搜索+标记所在行+复制书签行

一。缘起 用习惯了 某edit, 突然用notepad很不习惯&#xff0c;至少3处不习惯&#xff1a;列操作&#xff0c;批量复制搜索行&#xff0c;和是txt文件比较。 另外一直坚持认为&#xff0c;不提供快捷键操作的软件不是好软件&#xff1a;&#xff09;当下屏幕对眼睛迫害至深的时…

【正点原子FPGA连载】第十七章双核AMP实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十七章双核AMP…

使用FVM管理Flutter SDK版本切换

window下配置fvm版本切换工具&#xff0c;管理flutter sdk版本的切换 一、配置flutter dart环境 使用前需要先配置flutter dart环境&#xff0c;才能下载jvm 已经配置好环境的&#xff0c;在命令框中输入dart --version验证是否安装成功 C:\Users\topqizhi>dart --versi…

前端导出表格 修改样式(xlsx-style)用法

一. 应用机制 xlsx-style 修改样式的机制 就是选中哪一行&#xff0c;那一列或者哪一个 然后去修改 比如表格最左上角的一个格子 坐标是&#xff08;0&#xff0c; 0&#xff09;下标 也可以叫做 A1 选中之后 可以修改其样式 二. 实战讲解 1. 下载依赖 npm install xls…

了解Python语言和版本

1.1 任务1了解Python语言和版本 Python 语言的名字来自于一个著名的电视剧"Monty Pythons Flying Cireus",Python之父 Guido van Rossum是这部电视剧的狂热爱好者&#xff0c;所以把他设计的语言命名为Python。 Python 是一门跨平台、开源、免费的解释型高级动态编…

2023年,尽量还是别裸辞了吧···

你知道什么叫 度日如年 吗&#xff1f;就是在家待业的每一天。你知道什么叫心焦如焚吗&#xff1f;就是投出100份简历却等不来一个回应。 当前就业环境&#xff0c;裁员、失业消息满天飞&#xff0c;好像能有一份工作就不错了&#xff0c;更别说高薪。其实这只是一方面。另一方…

电商平台商品详情接口的应用场景

API接口的定义价格、库存量、发货地点等。此外&#xff0c;它还可以提供商品的详细信息&#xff0c;包括商品的图片、详细描述、规格参数、售后服务等。这些信息可以帮助用户更好地了解商品&#xff0c;从而更好地选择商品。其次&#xff0c;电商平台商品详情接口的实现原理是基…

关于Qt程序打包后运行库依赖的常见问题分析及解决方法

目录 一. 大致如下常见问题&#xff1a; &#xff08;1&#xff09;找不到程序所依赖的Qt库 version Qt_5 not found (required by &#xff08;2&#xff09;Could not Load the Qt platform plugin "xcb" in "" even though it was found &#xff0…

Antd Select 设置偏移量

对于Select 组件我要想实现如下效果&#xff0c;该如何处理呢&#xff1f;我们查看你select组件https://ant.design/components/select-cn#select-props 并没有相关的属性API,如何去处理这个呢&#xff1f;添加 dropdownAlign{{ offset: [0, 30] }} 这个属性&#xff0c;可以设…

在Linux中进行rocketmq及rocketmq控制台安装与配置

rocketmq下载安装的版本&#xff1a;rocketmq-rocketmq-all-5.0.0.tar.gz rocketmq控制台下载安装的版本&#xff1a;rocketmq-externals-rocketmq-console-1.0.0.tar.gz rocketmq安装 第一步&#xff0c;下载server-jre-8u202-linux-x64.tar.gz安装包。 登录网址&#xff…

UVa 1604 Cubic Eight-Puzzle 立体八数码问题 双向BFS 状态设定

题目链接&#xff1a;Cubic Eight-Puzzle 题目描述&#xff1a; 给定一个初始状态和一个终止状态的3∗33*33∗3网格&#xff0c;网格中含有888个立方体和一个空白&#xff0c;每个立方体的颜色如下&#xff1a; 需要注意的是&#xff1a;只会给出终止状态的立方体的顶面朝向&a…

Android init 进程流程分析 一

init 进程流程分析 一1.1引入init进程1.2 init 进程入口函数参考博客预告下一章 FirstStageMain()分析1.1引入init进程 1.启动电源以及系统启动&#xff1a; 上电引导芯片从预定义的地放&#xff08;固化在ROM)开始执行&#xff0c;加载引导程序Bootloader 到RAM中&#xff0c…

格雷码的实现

格雷码&#xff1a;任意两个相邻的二进制数之间只有一位不同 想必通信专业的学生应该都接触过格雷码&#xff0c;它出现在数电、通信原理等课程里。 如下图所示一个四位格雷码是什么样子的&#xff1a; 格雷码的特点&#xff1a; 其最大的特点是任意上下相邻的两个码值间&am…

css学习-----web

引入方式 内嵌式 css写在style标签中 外链式 css写在一个单独的.css文件中 <link rel"stylesheet" href"./文件名.css">stylesheet关系为样式表&#xff1b; href地址 行內式 css写在标签的style属性中 可以配合js使用 选择器 标签选择器是选…

CTFer成长之路之XSS的魔力

XSS的魔力CTF XSS闯关 题目描述: 你能否过关斩将解决所有XSS问题最终获得flag呢&#xff1f; docker-compose.yml version: "3.2"services:xss:image: registry.cn-hangzhou.aliyuncs.com/n1book/web-xss:latestports:- 3000:3000启动方式 docker-compose up -…

Spring依赖注入(四):Bean的循环依赖是如何产生和解决的?

前言其实这篇文章才是正主&#xff0c;前面几篇文章&#xff1a;Spring依赖注入&#xff08;一&#xff09;&#xff1a;字段注入的方式是如何工作的&#xff1f;Sprng依赖注入&#xff08;二&#xff09;&#xff1a;setter注入是如何工作的&#xff1f;Sprng依赖注入&#xf…

easyExcel与poi版本不兼容导致的后台报错问题

1、背景&#xff1a;最新接手公司系统excel导入解析模块&#xff0c;点击批量导入&#xff0c;后台报错如下 com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/FileMagicat com.alibaba.excel.analysis.…

CycleGAN代码使用入门

以下内容为本人亲测使用过程&#xff0c;完成了橘子到苹果的AI转化效果&#xff0c;先上效果&#xff1a; 1、下载数据集 Index of /cyclegan/datasets 本次做的是苹果和橘子相互转化的实验&#xff0c;所以下载apple2orange.zip数据集 2、下载代码 github地址为&#xff1a;…

ChatGPT从下游应用“火”到了上游芯片厂,国内谁将受益?

因库存陷入低迷周期的半导体市场近日因ChatGPT的火热而重新受到外界关注。 原文链接&#xff1a;ChatGPT从下游应用“火”到了上游芯片厂&#xff0c;国内谁将受益&#xff1f; 由于ChatGPT属于生成式AI&#xff0c;被誉为“AI芯片”第一股的英伟达应声而涨。2月13日收盘&#…