HAL库(STM32CubeMX)之看门狗学习及实操(STM32F767IGTX)

news2024/9/28 15:32:02

系列文章目录

HAL库(STM32CubeMX)——ADC学习总结(包含单次/连续模式下的轮询/中断/DMA)(蓝桥杯STM32G431RBT6)

HAL库(STM32CubeMX)——DAC学习(STM32G431RBT6)

HAL库(STM32CubeMX)——USART配置(中断接收/STM32G431RBT6)

HAL库(STM32CubeMX)——基本定时器、PWM、输入捕获、输出比较、互补式PWM等综合学习(STM32G431RBT6)

stm32下的IIC实现EEPROM代码-stm32G431RBT6(蓝桥杯嵌入式)

stm32f103c6t6下的HAL库搭建三种低功耗模式及实战分析(stm32通用)


文章目录

  • 系列文章目录
  • 看门狗分类及基本要点
  • 代码实现和HAL配置(STM32F767IGTX)
    • 一、独立看门狗
    • 二、窗口看门狗
  • 实际应用


看门狗分类及基本要点

  • 独立看门狗(IWDG):独立看门狗由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。因此叫独立,同时因此在低功耗模式下不能启动看门狗,低功耗详情见之前文章。IWDG比WWDG更精确。只要没有到时间,都能喂狗。

  • 窗口看门狗(WWDG):设置一个窗口值,窗口下限一般是定死的64,窗口上限可以自定义(肯定要比自动重装载值小),只有在这个窗口内喂狗才行,否则将引起芯片复位。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。严格限定喂狗时间段。
    在这里插入图片描述
    蓝色箭头代表的在窗口上限前喂狗会复位,在窗口下限前没有喂狗也会复位(在递减到0x3f)


代码实现和HAL配置(STM32F767IGTX)

窗口看门狗是挂在APB1下的,所以计算时间的时候需要知道APB1的频率
在这里插入图片描述

在这里插入图片描述

一、独立看门狗

在这里插入图片描述
看门狗复位的时间间隔为:4*4095(向下重装载值)/32k,而我们喂狗(不让他复位)可以在任何时间内操作

至于中间那个类窗口看门狗的寄存器:递减计数器的值小于类窗口看门狗寄存器的值且大于0时才能喂狗,否则将直接芯片重启。所以默认4095的时候,就是普通的独立看门狗。
在这里插入图片描述
关键代码:

MX_IWDG_Init();//看门狗初始化程序

void MX_IWDG_Init(void) //具体定义内容,也可以在这里面改各项数值
{

  hiwdg.Instance = IWDG;
  hiwdg.Init.Prescaler = IWDG_PRESCALER_16;
  hiwdg.Init.Reload = 4095;
  if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
  {
    Error_Handler();
  }

}

HAL_IWDG_Refresh(&hiwdg);//执行喂狗操作

二、窗口看门狗

在这里插入图片描述

在这里插入图片描述
这里使能早期唤醒中断,并开启中断,系统出现问题,喂狗函数没有生效,那么在计数器由减到0x40 (0x3f+1) 的时候,便会先进入中断,之后才会复位,你也可以在中断里面喂狗。

这里有一个其他大佬的计算时间的例子:
在这里插入图片描述
因为WWGD会有一个分频
在这里插入图片描述

看门狗初始化: 
HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg);
 
喂狗:
HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg);
 
看门狗中断处理函数:
HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg);
 
 
看门狗中断回调函数:
 __weak HAL_WWDG_EarlyWakeupCallback(hwwdg);

实际应用

a)喂狗的操作,必须在主循环里,不能放在定时器中断里,如果出现了主循环跑飞或者陷入某个死循环,定时器中断可能还在正常运行,起不到监测系统正常运行的作用;

b)如果是多任务系统,比如使用了实时操作系统,有多个任务在运行,使用看门狗,在一定时间内必定会运行的一组任务,需要每个任务都执行到之后才喂狗一次;可能会被阻塞的任务,不能与喂狗操作相关联。

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

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

相关文章

Innodb如何实现表--上篇

Innodb如何实现表--上篇数据是如何被管理起来的表空间段区页行行记录格式Compact记录行格式Redundant行记录格式行溢出数据Compressed和Dynamic行记录格式Char的行存储结构小结数据是如何被管理起来的 从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放在一…

[附源码]计算机毕业设计JAVA宿舍管理系统

[附源码]计算机毕业设计JAVA宿舍管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis M…

十万部冷知识:奥运会冠城市名,世界杯为什么冠国名?

不知道大家发现没有,凡是给奥运会、亚运会等很多比赛取名的时候,往往都是给它冠以城市的名字。比如,北京冬奥会、广州亚运会、北京奥运会等等,而称呼世界杯的时候,我们往往是冠以国家的名字称呼的,诸如&…

Day17-购物车页面-商品列表-实现滑动删除功能

提纲挈领: 官方文档: 博主文档: 我的操作: 1》改造 cart.vue 页面的 UI 结构,将商品列表区域的结构修改如下(可以使用 uSwipeAction 代码块快速生成基本的 UI 结构): 2》在 data 节…

学到生无可恋之 Redis

一把年纪了还是这么菜 1 Redis 是啥 Redis 是一个高性能的 Key-Value 数据库,key 的类型是字符串,value 的类型有:string 字符串类型、list 列表类型、set 集合类型、sortedset(zset) 有序集合类型、hash 类 型、bitmap 位图类型等。 上图…

Mybatis:Mybatis的各种查询功能(5)

Mybaits笔记框架:https://blog.csdn.net/qq_43751200/article/details/128154837 Mybatis的各种查询功能1. 查询一个实体类对象2. 查询一个List集合3. 查询单个数据4. 查询一条数据为map集合5. 查询多条数据为map集合方法一方法二1. 查询一个实体类对象 SelectMapp…

【图像融合】小波变换彩色图像融合(带面板)【含GUI Matlab源码 782期】

⛄一、小波变换彩色图像融合简介 0 引言 目前在各种图像采集与分析系统中已大量使用彩色CCD数码相机, 但是由于其视野有限, 常常获得的只是局部图像, 如果要保证一定的分辨率的前提下采集整体彩色图像, 只能先拍摄具有重叠部分的局部彩色图像, 随后对其进行手工或自动拼接的方…

29岁才转行软件测试,目前32了,我的一些经历跟感受

按惯例,先说下我基本情况。我是90年的,算是最早的90后,现在跟你介绍的时候还恬不知耻的说我是90后,哈哈,计算机专业普通本科毕业。在一个二线城市,毕业后因为自身能力问题、认知水平问题,再加上…

基于 Delphi 的前后端分离:之二

本系列文章之二 # 摘要 上一篇文章,我在页面里面,使用 JS 向服务器端获取数据,然后修改页面元素显示数据成功。接下来,真正的页面,是需要格式的,要好看。如何做到? # 开始 # 网页模板和 Del…

用于安装和维护光纤单模和多模的光纤网络测试套件

VIAVI 唯亚威OMK-3xV2 光纤测试套件是一系列小巧且坚固耐用的仪表,用于安装和维护单模 (SM) 和多模 (MM) 光纤网络。所有测试套件均配备光功率计,以及专用于光功率、插入损耗测量和连续性检查的双波长或四波长功率计光源。 优点 随时可用 - 超高可靠性和…

四大主流BI工具的对比分析!

一、简介 1.Tableau Tableau 是一个 BI 分析和可视化工具。它为分析数据和创建交互式可视化提供了强大的功能。Tableau 旨在支持复杂的数据科学和分析,让数据专家可以使用一系列可视化工具构建分析。 2.Power BI Power BI 是 Microsoft 的产品,因此它…

[附源码]Python计算机毕业设计SSM久宠宠物店管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Spring MVC中的拦截器

在之前学习JAVAWEB 的时候,我们学习了过滤器的知识。过滤器的作用是保护请求的服务器资源,在请求资源被执行之前,如果请求地址符合拦截范围,则会先执行过滤器。过滤器的执行时机,是在Servlet之前执行的。但是在使用了S…

Java项目导入IDEA的流程配置及常见问题解决(持续更新中...)

Java项目导入IDEA的流程配置及常见问题解决 本文主要演示一个普通 java 项目导入IDEA的流程步骤及可能出现的问题、原因及解决办法。 本文使用的部分软件版本如下: IDEA 2018.3 JDK 1.8 Windows 1.导入Java Priject 导入之后可能发出现大面积红色,这…

StringTable

文章目录1. String的基本特性2. String的内存分配3. String的基本操作4.字符串的拼接操作5. intern()的使用6. G1中的String去重操作1. String的基本特性 2. String的内存分配 使用String的intern方法可以把字符串加入到字符串常量池。同时可以使用该方法来证明JDK8中字符串常量…

PL7022/PL7022B原厂双节/两节锂电池串联充电IC和保护IC

双节锂电池串联管理系列选型表: 型号 封装 功能 PL7022B SOT23-6 双节4.2V锂电池串联保护电路 PL7022 SOT23-6 双节4.35V锂电池串联保护电路 PL7501C ESOP8 升压型双节锂电池串联充电电路(VIN:5V) PL7222 ESOP8 降压型双节锂电…

ABC 分析法(帕累托分析法、2/8分析法)

在任何特定群体中,重要的因子通常只占少数,而不重要的因子则占多数,因此只要能控制具有重要性的少数因子即能控制全局。例如,在企业中,通常认为它80%的利润来自于20%的项目或重要客户;全球最富有的 20% 人口…

帮公司面试了一个33岁的程序员,只因这一个细节,被我一眼看穿是培训班出来的,没啥工作经验...

首先,我说一句:培训出来的,优秀学员大有人在,我不希望因为带着培训的标签而无法达到用人单位和候选人的双向匹配,是非常遗憾的事情。 最近,在网上看到这样一个留言,引发了程序员这个圈子不少的…

基于功能安全的车载计算平台开发:硬件层面

作为车载智能计算平台功能软件与系统软件的载体,硬件的失效可能直接导致功能软件输出不可信任的结果,从而违背安全目标。由于硬件故障在硬件生命周期中发生时间的随机性,在通过改善流程降低系统性失效的同时,ISO 26262功能安全标准…

Mysql的时间类型选定:Datetime,Timestamp,Bigint

1. 基本区别: 2. 其他特性: 1. TIMESTAMP是以utc格式存储,会自动检索当前时区对时间进行转换,而DATETIME不会。 2. 存入null时,TIMESTAMP会自动存储当前时间,而DATETIME存储null值。 3. 时间计算: DATETIME翻译为汉语即"时间戳",它是当前时间到 Unix元年(1…