单片机-STM32 看门狗(八)

 目录

一、看门狗概念

1、定义:

二、单片机中的看门狗

1、功能描述:

2、看门狗设置部分

预分频寄存器(IWDG_PR)

3、窗口看门狗

特性:

4、看门狗配置:


一、看门狗概念

看门狗--定时器(不属于基本定时器、通用定时器、高级定时器)

1、定义:

看门狗,又叫watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗(kicking the dog/service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT清零,如果超过规定的时间不喂狗(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到MCU,使MCU复位。防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存的数据混乱,会导致程序指针错误,不在程序区,取出错误的程序指令等,都有可能会陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续正常工作,导致整个系统的陷入停滞状态,发生不可预料的后果。

看门狗,又叫 watchdog,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中输入叫做喂狗,输出一般连接到另外一个部分的复位端,一般是连接到单片机。 看门狗的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。看门狗命令在程序的中断中拥有最高的优先级。

输入端:喂狗(定时器中刷新计数器)--一个函数

输出端:连接复位电路,一旦计数器从最大值计数到0,还没有喂狗,就直接复位

重装在:1000

看门狗就会从1000从上而下计数,0--1000中间没有喂狗,那么计数器计数到0,那么就会复位,如果在0--1000的范围内喂狗了,那么就代表当前程序正常执行,不会复位。

假如说我们的一个程序执行事件1500ms,那么我们就可以将我们的看门狗的运行周期设置为大于1500ms的时间,假如说设置为2000ms,那么我们就可以检测程序运行时间,如果2000ms还没有喂狗,代表程序卡死了,就需要复位。

二、单片机中的看门狗

看门狗:独立看门狗 窗口看门狗

独立看门狗的时钟:40KHZ(LSI)

窗口看门狗的时钟:APB1分频得到

1、功能描述:

在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。无论何时,只要在键寄存器IWDG_KR中写入0xAAAA, IWDG_RLR中的值就会被重新加载到计数器,从而避免产生看门狗复位 。

0xcccc--开启看门狗

0xaaaa--喂狗

IWDG_RESET--复位信号

IWDG_KR---键寄存器

IWDG_RLR--重装载寄存器

2、看门狗设置部分

设置一个1s的周期进行喂狗???

独立看门狗时钟40Khz

我们只需要设置预分频寄存器和重装在寄存器即可

预分频寄存器(IWDG_PR)

预分频:64分频

重装在:625

周期=(64/40khz)*625 ms 周期:1000ms

3、窗口看门狗

窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位变成0前被刷新,看门狗电路在达到预置的时间周期时,会产生一个MCU复位。在递减计数器达到窗口寄存器数值之前,如果7位的递减计数器数值(在控制寄存器中)被刷新, 那么也将产生一个MCU复位。这表明递减计数器需要在一个有限的时间窗口中被刷新。

特性:

● 可编程的自由运行递减计数器

● 条件复位

─ 当递减计数器的值小于0x40, (若看门狗被启动)则产生复位。

─ 当递减计数器在窗口外被重新装载, (若看门狗被启动)则产生复位。见0。

● 如果启动了看门狗并且允许中断,当递减计数器等于0x40时产生早期唤醒中断(EWI),它可

以被用于重装载计数器以避免WWDG复位

下限值:0x40--计数器递减到0x40还没有喂狗,那么就会产生复位

上限值:自定义的,不要超过最大的计数周期,计数器值大于上限值之前喂狗也会去复位。

4、看门狗配置:

主函数中:

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

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

相关文章

svg图标的使用

图片的格式有很多,前端经常使用的有以下类型:jpg,jpeg,png,gif,svg,这篇文章将简单svg的情况,以及项目中如何使用和配置svg图标 目录 什么是svg图标 SVG图标的优缺点 优点 缺点 svg前端使用场景 SVG在代码中的使用 简单使用创建svg 作为图标引入…

udp网络通信 socket

套接字是实现进程间通信的编程。IP可以标定主机在全网的唯一性,端口可以标定进程在主机的唯一性,那么socket通过IP端口号就可以让两个在全网唯一标定的进程进行通信。 套接字有三种: 域间套接字:实现主机内部的进程通信的编程 …

yolov5 +gui界面+单目测距 实现对图片视频摄像头的测距

可实现对图片,视频,摄像头的检测 项目概述 本项目旨在实现一个集成了YOLOv5目标检测算法、图形用户界面(GUI)以及单目测距功能的系统。该系统能够对图片、视频或实时摄像头输入进行目标检测,并估算目标的距离。通过…

Linux shell编程学习笔记78:cpio命令——文件和目录归档工具

0 前言 在Linux系统中,除了tar命令,我们还可以使用cpio命令来进行文件和目录的归档。 1 cpio命令的功能,帮助信息,格式,选项和参数说明 1.1 cpio命令的功能 cpio 名字来自 "copy in, copy out"&#xf…

具有RC反馈电路的正弦波振荡器(文氏桥振荡器+相移振荡器+双T振荡器)

2024-9-10,星期二,22:13,天气:雨,心情:晴。今天从下午开始淅淅沥沥一直在下雨,还好我有先见之明没骑自行车,但是我忘带伞了,属于说是有点脑子但是不多了,2333…

如何注册谷歌账号(“此电话号码无法验证”问题)

如何注册谷歌账号(“此电话号码无法验证”问题) 以下注册账号的步骤于 2024.9.10 20:00 成功实施。 文章目录 如何注册谷歌账号(“此电话号码无法验证”问题)1)打开谷歌浏览器2)设置浏览器语言【英语&…

Docker基本管理--Dockerfile镜像制作(Docker技术集群与应用)

容器端口映射; 容器间通信; 容器数据卷; DockerFile; 容器端口映射: 实验环境:紧接着之前的快照,将该文件夹拉取进去; 然后执行导入的脚本,会将该目录下所有打包好的镜像文件导入进入。 然后进…

每个python程序员都应该早点知道的 6 个 Python 函数

在编程中,默认参数的引入使得函数调用更为灵活,不仅允许开发者在特定情况下省略某些非必需参数,同时也强调了对参数与实际传递值(即论点)之间区别的理解,这对于掌握函数工作机制至关重要。 此外&#xff0…

VScode 的简单使用

目录 1. VScode 的使用 1.1 常用插件 1.2 常用快捷键 1. VScode 的使用 1.1 常用插件 1.2 常用快捷键 也可以“ CTRLD ”;使用“CTRL滚轮”即可; ctrl /-,是用来展开/收起代码的; 比如:js 的多行注释是 shiftalt…

[数据集][目标检测]西红柿缺陷检测数据集VOC+YOLO格式17318张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):17318 标注数量(xml文件个数):17318 标注数量(txt文件个数):17318 标…

AV1 Bitstream Decoding Process Specification:术语和定义

原文地址:https://aomediacodec.github.io/av1-spec/av1-spec.pdf没有梯子的下载地址:AV1 Bitstream & Decoding Process Specification摘要:这份文档定义了开放媒体联盟(Alliance for Open Media)AV1视频编解码器…

UE4_后期处理五—饱和度调整、隔离、扭曲、重影

一、色彩饱和度调整: 原图 后期处理材质节点: 效果图: 可以根据参数saturation调整饱和还是去饱和。 当saturation为1时:去饱和度,如下图: 当saturation为0时:原始的一个状态,如下…

展会通过智慧客流统计分析优化运营策略-讯鹏科技

在当今数字化高速发展的时代,展会行业也在积极探索利用智慧科技进行转型与升级。其中,智慧客流统计分析成为了展会优化运营策略的关键要素。 智慧客流统计分析首先为展会提供了精准的数据支撑。通过先进的传感器、摄像头等设备,能够实时、准确…

PyCharm修改背景颜色、修改字体大小+Python常用快捷键+Python常见的运算符

文章目录 PyCharm软件的使用1. 修改背景颜色和字体大小1.1 修改背景颜色1.2 修改字体大小 2. 常用的快捷键3. 常见的运算符3.1 算术运算符3.2 赋值运算符3.3 比较运算符3.4 逻辑运算符 PyCharm软件的使用 1. 修改背景颜色和字体大小 1.1 修改背景颜色 1.2 修改字体大小 2. 常…

图文并茂带你理解Java的SPI机制

目录 一、Java的SPI机制1、什么是Java的SPI ?2、JavaSPI 代码示例 (使用Maven项目演示)3、 JavaSPI 机制的核心-ServiceLoader4、实现自己的ServiceLoader5、Java中还有哪些SPI实现? 一、Java的SPI机制 1、什么是Java的SPI ? SPI全称 Servi…

中秋快到了,要给哪些国外客户送祝福(附贺卡模板)

马上就要中秋节了,在这里提前祝小伙伴们中秋节快乐,身体健康,阖家团圆,业绩越来越好,公司越来越好,一切都越来越好! 中秋节是我们非常重要的几个传统节日之一了,除了我们自己庆祝之…

计算机网络练级第一级————认识网络

目录 网络搁哪? 网络的发展史(了解) 独立模式: 网络互联: 局域网时期: 广域网时期: 什么是协议 TCP/IP五层/四层模型 用官话来说: 我自己的话来说 第一层应用层&#xff1…

Python+selenium自动化元素定位防踩坑(建议收藏)

踩坑一:StaleElementReferenceException selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document 异常原因: 意思是,引用的元素已过期。原因是页面…

soup.find(‘div‘)获取的数据长度为3,为什么1和3都是空的?

用beautifulSoup中的find(‘div’)可以获取一个div数据,为什么用len()计数是显示长度为3? 实际在打印输出时,1和3又没有内容输出?用print(div【0】)和print&…

Java小白一文讲清Java中集合相关的知识点(七)

LinkedHashSet LinkedHashSet是HashSet的子类 LinkedHashSet底层是一个LinkedHashMap,底层维护了一个数组双向链表 而在之前讲的HashSet中的链表是单向的哈,注意区分! LinkedHashSet根据元素的hashcode值来决定元素的存储位置,同时使用链表…