独立看门狗 IWDG

news2024/12/23 9:51:28

独立看门狗介绍

Q:什么是看门狗?

A:可以理解为对于一只修勾的定时投喂,如果不给它吃东西就会狂叫,因此可以通过观察修勾的状态来判断喂它的人有没有正常工作。

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

独立看门狗本质

本质是一个 12 位的递减计数器,当计数器的值从某个值一直减到0的时候,系统就会产生一个复 位信号,即 IWDG_RESET

如果在计数没减到0之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们 经常说的喂狗。

独立看门狗框图

独立看门狗时钟 

独立看门狗的时钟由独立的RC振荡器LSI提供,即使主时钟发生故障它仍然有效,非常独立。启用 IWDG后,LSI时钟会自动开启。LSI时钟频率并不精确,F1用40kHz。

LSI经过一个8位的预分频器得到计数器时钟。

预分频寄存器

低三位有效,因此可以组成8组分频组合

 分频系数算法:

prer是IWDG_PR 的值;PSC就是就是预分频因子的值

比如IWDG_PR = 000,值为0,PSC=预分频因子=4*2^0=4*1=4

重装载寄存器

重装载寄存器是一个12位的寄存器,用于存放重装载值,低12位有效即最大值为4096,这个值 的大小决定着独立看门狗的溢出时间。 

键寄存器 

键寄存器IWDG_KR可以说是独立看门狗的一个控制寄存器,主要有三种控制方式,往这个寄存器 写入下面三个不同的值有不同的效果。

 溢出时间计算公式:

计数一次,经过的时间就是f/PSC

Tout 单位为秒

是固定的,为40k赫兹

PSC 是通过预分频寄存器设置的,需要算

RLR 是通过重装载寄存器设置的,需要算

独立看门狗实验

需求

开启独立看门狗,溢出时间为1秒,使用按键1进行喂狗。

设置溢出时间

PSC = 64; RLR = 625时,Tout为1秒不止这一种组合,只要能凑成1秒且符合寄存器限制的值都可以

CubeMX

1. 惯例设置 + 配置按键的GPIO口 + 开一路串口

2. 点击左侧的“IWDG”,然后选择“Activated”

3. 在下侧设置PSC和RLR:

Keil

1. 在main.c中的main函数中,可以看到自动生成的 对于看门狗的初始化:

2. 写代码:

#include "string.h"

int main(void)
{
  
  HAL_UART_Transmit(&huart1, "start start\r\n", strlen("start start\r\n"), 100);

  while (1)
  {
		if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET){
			HAL_IWDG_Refresh(&hiwdg); //喂狗
		}
		HAL_Delay(50);
  }
}

实现效果

串口助手中:

可见,没有写在WHILE(1)里的串口信息在一直显示,这说明由于没有喂狗,程序在不停的一直重启;此时如果能每秒按一下KEY1,串口就不会再有信息,程序会正常运行,但只要超过一秒没按按钮,看门狗就会使得程序重启。

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

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

相关文章

【业务功能篇44】Mysql 海量数据查询优化,进行分区操作

业务场景:当前有个发料表,随着业务数据量增多,达到了几千万级别水平,查询的效率就越来越低了,针对当前的架构情况,我们进行了分区的设置,通过对时间字段,按年月,一个月作…

ios 启动页storyboard 使用记录

本文简单记录ios启动页storyboard 如何使用和注意事项。 xcode窗口简介 以xcode14为例,新建项目如下图,左边文件栏中的LaunchScreen.storyboard 为默认启动页布局。窗口中间部分是storyboard中的组件列表,右侧为预览,可以看到渲…

H3C-Cloud Lab-实验-DHCP实验

实验拓扑图: 实验需求: 1、按照图示为R1配置IP地址 2、配置R1为DHCP服务器,提供服务的地址池为192.168.1.0/24网段,网关为192.168.1.254,DNS服务器地址为202.103.24.68,202.103.0.117 3、192.168.1.10-1…

Camtasia Studio 2023 最新中文版,camtasiaStudio如何添加背景音乐

Camtasia2023的视频编辑工具可以帮助用户剪辑、裁剪、旋转、调整大小、添加特效、混合音频等。用户还可以使用Camtasia2023的字幕功能添加字幕和注释,以及使用其内置的特效和转场来提高视频的视觉效果。 Camtasia Studio 2023新功能介绍 的光标增强 由于光标在屏幕…

解决win10电脑无法访问局域网内其它共享文件问题

问题描述 今天需要上传文件到一个共享的局域网文件夹里,在我的电脑和浏览器访问//192.168.0.16//public都提升访问受限,开始以为是因为用户没授权,后来一般沟通后,发现其它电脑都能正常访问的,所以确定是自己电脑配置…

Caerulein,17650-98-5,雨蛙肽,以三氟醋酸盐形式提供的十肽分子

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ Caerulein |雨蛙素,雨蛙肽,蓝肽| CAS:17650-98-5 | 纯度:95% ------雨蛙素结构式---- ----试剂参数信息--- CAS号:17650-98-5 外观(Appearance&a…

java中使用POI生成Excel并导出

注:本文章中代码均为本地Demo版本,若后续代码更新将不会更新文章 需求说明及实现方式 根据从数据库查询出的数据,将其写入excel表并导出 我的想法是通过在实体属性上写自定义注解的方式去完成。因为我们在代码中可以通过反射的方式去获取实体…

js小写金额转大写 自动转换

// 小写转为大写convertCurrency(money) {var cnNums [零, 壹, 贰, 叁, 肆, 伍, 陆, 柒, 捌, 玖]var cnIntRadice [, 拾, 佰, 仟]var cnIntUnits [, 万, 亿, 兆]var cnDecUnits [角, 分, 毫, 厘]// var cnInteger 整var cnIntLast 元var maxNum 999999999999999.9999var…

vulnhub靶场red:1教程

靶场搭建 靶机下载地址:Red: 1 ~ VulnHub 难度:中等 信息收集 arp-scan -l 这里没截图忘记了,就只是发现主机 扫描端口 nmap --min-rate 1000 -p- 192.168.21.130 nmap -sT -sV -sC -O -p22,80 192.168.21.130 先看80端口 看到链接点一…

怎么又快又准的确定业务系统属于等保几级?

等保2.0政策已经落地严格执行了一段时间,但大家对于等保政策还有很多不清楚。这不不少人在问,怎么又快有准的确定业务系统属于等保几级? 怎么又快又准的确定业务系统属于等保几级? 【回答】:根据《信息安全等级保护管…

AtcoderABC255场

A - You should output ARC, though this is ABC.A - You should output ARC, though this is ABC. 题目大意 给定整数R和C以及一个2x2矩阵A,需要输出A R,C的值。 思路分析 简单的矩阵查找。根据给定的索引R和C,找到矩阵A中相应位置的元素&#xff0c…

实例014 OutLook界面

实例说明 程序主界面包括菜单栏、工具栏、状态栏和树状视图。OutLook界面美观、友好,是一个很实用的程序主界面,并且菜单栏和工具栏是可移动的。运行本例效果如图1.14所示。 图1.14 Out Look界面 技术要点 一般程序的菜单栏和工具栏是不可移动的&…

【Ajax】笔记-服务端响应JSON数据

服务端响应JSON数据 构建测试案例 键盘按键触发请求服务端&#xff1a; 键盘按下触发事件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width,…

项目中前端如何实现无感刷新 token!

场景&#xff1a;线上平台有时会出现用户正在使用的时候&#xff0c;突然要用户去进行登录&#xff0c;这样会造成很不好的用户体验。 1.请求采用的是axios 2.平台的采用的 JWT(JSON Web Tokens) 进行用户登录鉴权。 原因&#xff1a; 1.突然跳转到登录页面&#xff0c;是…

【IVI】EVS 应用

EVS 应用 1、EVS启动2、EvsStateControl.cpp 控制管理2.1 EvsStateControl初始化2.2 EvsVehicleListener.h唤起处理EvsStateControl::updateLoop() 3、EVS 应用逻辑流程 android12-release 增强型视觉系统 (EVS) 1、EVS启动 Android 包含与 EVS 管理器和车载 HAL 通信的 EVS 应…

CAD2021安装教程适合新手小白【附安装包和手册】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、下载文件二、使用步骤1.安装软件前&#xff0c;断开电脑网络&#xff08;拔掉网线、关闭WIFI&#xff09;2、鼠标右击【AutoCAD2021(64bit)】压缩包选择【解…

解密:GPT-4框架与训练过程,数据集组成,并行性的策略,专家权衡,推理权衡等细节内容

大家好&#xff0c;我是微学AI&#xff0c;今天给大家解密一下GPT-4框架与训练过程&#xff0c;数据集组成&#xff0c;并行性的策略&#xff0c;专家权衡&#xff0c;推理权衡等细节内容。2023年3月14日&#xff0c;OpenAI发布GPT-4&#xff0c;然而GPT-4的框架没有公开&#…

Nacos服务注册和配置中心(Config,Eureka,Bus)2

Nacos数据模型 Nacos领域模型,Namespace命名空间、Group分组、集群这些都是为了进行归类管理&#xff0c;把服务和配置文件进行归类&#xff0c;归类之后就可以实现一定的效果&#xff0c;比如隔离。对于服务来说&#xff0c;不同命名空间中的服务不能够互相访问调用 N…

msvcr110.dll丢失的解决方法分享,教你如何快速解决

首先介绍msvcr110.dll是什么&#xff1f;下面再介绍解决方法。 msvcr110.dll文件它提供了一系列用于C编程的函数和资源。这个文件通常用于支持使用了C语言编写的程序&#xff0c;如一些游戏、图形应用程序、数据库管理工具等。 与msvcp110.dll文件类似&#xff0c;msvcr110.dl…

Linux系统编程(守护进程)

文章目录 前言一、守护进程概念二、空洞文件三、创建守护进程总结 前言 本篇文章我们来讲解守护进程&#xff0c;守护进程在进程中是一个比较重要的概念&#xff0c;在笔试面试中也经常考到&#xff0c;这篇文章就带大家来学习一下什么是守护进程。 一、守护进程概念 守护进…