HAL库实战:STM32看门狗(IWDG/WWDG)配置与超时计算详解

7.STM32F407之HAL库——看门狗笔记 使用STM32CubeMX配置工程+MDKARM编写代码实现看门狗 阅读详情

1. 看门狗是什么?为什么需要它?

大家好,我是老李,在嵌入式行业摸爬滚打十多年了。今天想和大家聊聊STM32的看门狗功能,特别是如何用HAL库配置独立看门狗(IWDG)和窗口看门狗(WWDG)。如果你曾经遇到过程序跑飞、死机或者莫名其妙重启的情况,那看门狗就是你的救星。

简单来说,看门狗就是一个硬件定时器,它需要你的程序定期去"喂狗"(重置计数器)。如果程序正常运行,就会按时喂狗;如果程序跑飞或者陷入死循环,看门狗就会超时,触发系统复位,让设备重新回到正常状态。这就好比养了一只忠诚的护卫犬,需要定期喂食,如果主人出事不能喂食,狗狗就会叫醒所有人来帮忙。

在实际项目中,我看过太多因为没用好看门狗而导致的故障。有一次,一个工业控制设备在现场运行几个月后突然死机,最后发现就是因为看门狗配置不当。所以今天我会详细讲解两种看门狗的特点、适用场景,以及如何准确计算超时时间,帮你避开这些坑。

2. 独立看门狗(IWDG)实战配置

2.1 IWDG的工作原理和特点

独立看门狗是我最常用的看门狗类型,因为它简单可靠。IWDG使用独立的低速内部时钟(LSI),典型频率是40kHz,这个时钟即使在主时钟失效时也能正常工作。这意味着即使你的主晶振出了问题,IWDG仍然能正常工作,确保系统安全。

IWDG的核心是一个12位递减计数器,从初始值开始不断递减,当减到0时就会产生复位信号。我们需要在计数器归零前通过喂狗操作重置计数器,防止系统复位。这个过程就像给一个漏水的桶不断加水,如果停止加水,水漏光了就会触发警报。

2.2 HAL库配置步骤

配置IWDG其实很简单,只需要几个步骤。首先在STM32CubeMX中启用IWDG,设置预分频系数和重装载值。然后在代码中调用HAL库函数即可:

IWDG_HandleTypeDef hiwdg;

void MX_IWDG_Init(void)
{
  hiwdg.Instance = IWDG;
  hiwdg.Init.Prescaler = IWDG_PRESCALER_32;
  hiwdg.Init.Reload = 1250;
  hiwdg.Init.Window = 0xFFF;
  if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
  {
    Error_Handler();
  }
}

初始化完成后,只需要在程序中的合适位置定期喂狗:

HAL_IWDG_Refresh(&hiwdg);

我通常会在主循环的关键节点和重要任务完成后喂狗,确保这些核心功能正常运行。

2.3 超时时间计算方法

这是很多人容易混淆的地方,我来详细解释一下。IWDG的超时时间计算公式为:

Tout = (4 × 2^prescaler) × reload / LSI_frequency

其中:

  • prescaler
STM32CubeMX之独立看门狗(IWDG)和窗口看门狗(WWDG) 独立看门狗和窗口看门狗及其区别 阅读详情

相关推荐

STM32 hal库使用笔记(六)看门狗—IWDG/WWDG(二者区别)

STM32 hal库使用看门狗—IWDG/WWDG的简单测试,利用串口反馈。

hdh546的博客 2190

STM32调试模式下如何优雅地管理看门狗IWDG与WWDG

本文详细探讨了STM32在DEBUG调试模式下管理看门狗(IWDG与WWDG)的优雅方案。通过利用芯片内置的DBGMCU模块冻结功能,可在断点暂停时防止看门狗意外触发复位,从而提升开发调试效率。文章提供了基于HAL库的具体代码实现、不同开发环境的配置步骤以及常见问题排查指南,帮助开发者驯服这颗调试中的“定时炸弹”。

assembly8low的博客 1038

STM32F103C8T6,窗口看门狗(WWDG)与独立看门狗(IWDG)详解

在嵌入式系统开发中,​​看门狗定时器​​是确保系统可靠性的关键组件。STM32F103C8T6提供了两种不同类型的看门狗:​​窗口看门狗(WWDG)​​和​​独立看门狗(IWDG)​​。本文将深入探讨它们的区别、工作原理、应用场景,并提供基于HAL库的实用代码示例。

汽车电子软件领域知识分享 1033

看门狗(IWDG_WWDG)详解

由上图可观察到当T[6:0]>W[6:0]是不允许刷新T[6:0]的值,即不允许喂狗,否则会复位。喂狗时间只能在W[6:0] < T[6:0] < 0x3F这个时间区间,当T[6:0]=0x3F时,也会产生复位。T[6:0]:看门狗计数器的值,每隔(4096*2^WDGTB[2:0])PCLK个周期减1。2、当窗口看门狗的计数器的值减到某一个数之前喂狗也会产生复位,该值叫窗口的上限值,可由。PR[3:0]:设置看门狗时钟(LSI)的分频系数,最低为4分频,最高为1024分频。默认工作模式为软件模式。

sky的博客 1147

深度排查:网讯网卡WX1860AL4千兆网口降速百兆的硬件陷阱

本文详细剖析了网讯网卡WX1860AL4千兆网口降速至百兆的硬件故障排查过程。通过分析千兆以太网硬件原理,提供从网线、供电到PCB走线、焊接残留的标准化检修流程,并分享两种典型硬件陷阱(线序错误与焊锡短路)的实战修复案例,为硬件工程师解决类似传输速率问题提供系统性的诊断思路与方法。

a3b4c5的博客 1113

ICCompiler II学习笔记(一)ICC II使用全流程 overview

学习笔记同步发布在我的个人网站上,欢迎来访查看。 个人学识有限,理解可能有误,仅供参考。 文章目录一、前言二、 ICC II 简介和 GUI2.1 Blocks 和 Design Libraries2.2 Objects2.3 Application Options三、Design Setup四、APR flow五、 课程主题:如何用 ICC II来实现最好的PPA 一、前言 现在的芯片都在追求一个极致的PPA 芯片的生成可以分为以下 5大步骤: Front-end Design:前端设计,最终产生

一名FPGA芯片设计爱好者的技术博客 2万+

H3C模拟器HCL防火墙路由模式主备配置实验

摘要:本文详细介绍了网络拓扑规划与设备配置方案。运营商仅提供一个接口地址,通过虚IP技术实现双防火墙高可用部署:主备防火墙分别配置10.20.10.1/29和10.20.10.2/29作为实际上联地址,共享10.10.10.2/24虚IP;下联配置172.168.10.0/24网段,核心交换机配置VLAN接口及192.168.10.1、192.168.20.1两个下联接口。文章包含运营商路由器、防火墙(HA配置、VVRP设置)和核心交换机的具体命令行配置步骤,并强调需进行主备切换验证。整个方案实现了单运营商

LQ的博客 1123

通用策略04丨ORB魔改框架+自适应动量过滤模板

1、该策略第一次尝试使用低通滤波器进行行情择时过滤,同样该方法也可以用于主进场逻辑。2、出场逻辑适用于趋势、隔日波段、高低开等行情结构,对于日线级别长度K线一定积极作用,因此大家可以根据该逻辑进行反向品种筛选。3、在资金管理方面,我注意到一个问题,以往都是按照复权价格计算,但是资金却没有复权,所以这里实际上这里应该将价格除权计算,如下图所示:由于各平台差异,回测绩效以TBQ版本为准!!!本策略仅作学习、交流使用,实盘交易盈亏投资者个人负责!!!

松鼠宽客的博客 1176

通过轻量级图像增强Transformer (IAT) 提升YOLOv8在低光环境下的检测性能

随着深度学习和计算机视觉的快速发展,目标检测模型在各个领域中的应用不断扩展,特别是在低照度环境下的视觉任务。YOLOv8作为当前最先进的目标检测模型之一,在高亮度和良好照明条件下表现出色,但在低照度环境下的性能存在一定的不足。为了解决这一问题,我们提出了一种轻量级的低照度图像增强网络(IAT)来改进YOLOv8的暗光检测能力。本篇文章将深入探讨这一创新改进,并附带代码实现,帮助大家更好地理解这一技术的应用和效果。

博客 1214

YOLOv9改进策略 | Conv篇 | 2024最新ECCV最新大感受野的小波卷积WTConv助力YOLOv9有效涨点

本文给大家带来的改进机制是一种新的卷积层,称为WTConv(小波卷积层),它利用小波变换(WT)来解决卷积神经网络(CNN)在实现大感受野时遇到的过度参数化问题。WTConv的主要目的是通过对输入数据的不同频率带进行处理,使CNN能够更有效地捕捉局部和全局特征,WTConv成功解决了CNN在感受野扩展中的参数膨胀问题,提供了一种更为高效、鲁棒且易于集成的卷积层解决方案,我将其用于二次创新YOLOv9中的RepNCSPELAN4机制可以减少一定的参数量和计算量,达到一个可观的轻量化作用。

Snu77的博客 1544

性能优化-高通cDSP(QDSP6)架构详解

高通cDSP开发的商业价值30秒快速认识高通cDSP开发的商业价值【高通cDSP旨在处理一些简单但需要大量计算的场景,如图像处理、科学计算、AI训练、计算机视觉等。这些场景使用CPU来运算会极大的降低CPU的吞吐量,因此利用现代寄存器较宽的特性设计出了适配数据并行的DSP芯片,cDSP就是典型的代表。利用cDSP+CPU既可以满足一般的使用场景,也可以完成现代图像和视频数据的处理。

发狂的小花的博客 5946

基于 Qt C++ 的智能工厂数字孪生系统

你想要实现一个基于 Qt C++ 的智能工厂数字孪生系统,核心是 **Qt 3D** 场景搭建 + **实时数据驱动** 设备模型。下面我将为你提供一个完整的解决方案,包含 **核心思路、实现步骤、完整代码示例** 和 **注意事项**。| **渲染层** | 3D 场景搭建、设备模型加载、实时动画渲染、用户交互。| **业务逻辑层** | 数据处理(滤波、转换)、设备状态管理、动画逻辑控制。| **数据层** | 实时采集设备数据(如传感器、PLC、MES 系统),提供数据接口。

寒寒豆豆软件公司的博客 195

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: 从零构建嵌入式GUI:LVGL与FreeRTOS的深度整合与性能调优实战
下一篇: 从时钟域穿越到数据流:SERDES原语中的时钟架构与数据对齐艺术
Python
博客等级 码龄26年 1973粉丝 1567原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值