【STM32CubeMX学习教程】——6.看门狗实战:IWDG与WWDG的精准喂狗与调试技巧

STM32F4_独立看门狗详解(IWDG) 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界的电磁波干扰,造成程序的跑飞,从而陷入到死循环,程序的正常运行被打断,由单片机控制的系统无法继续正常工作,会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,LED0常量,如果KEY_UP按下,就进行独立看门狗喂狗,只要看门狗不停的按,看门狗就不会产生复位,保持LED0常量,一旦超过了看门狗的溢出时间还没按,就会导致程序重启,LED熄灭一次。//重载计数器的值到IWDG计数器中,避免其复位。 阅读详情

1. 看门狗:嵌入式系统的"安全卫士"

大家好,今天我们来聊聊STM32中那个默默守护系统安全的"忠诚卫士"——看门狗。在实际项目中,我遇到过不少因为程序跑飞导致系统死机的尴尬情况,这时候看门狗就显得尤为重要了。

看门狗本质上就是一个特殊的定时器,它需要程序定期去"喂食"(重置计数器)。如果程序因为某种原因无法正常执行,看门狗就会认为系统出现了异常,然后自动触发系统复位,让整个系统重新开始运行。这种机制对于需要长时间稳定运行的嵌入式系统来说简直是救命稻草。

STM32提供了两种看门狗:独立看门狗(IWDG)和窗口看门狗(WWDG)。我在实际项目中发现,很多开发者对这两种看门狗的区别和使用场景不太清楚,经常会出现配置不当导致系统意外复位的情况。接下来我就结合自己的实战经验,详细讲解这两种看门狗的使用技巧。

2. 独立看门狗(IWDG):简单可靠的守护者

2.1 IWDG的工作原理与特点

独立看门狗是我在项目中用得最多的一种看门狗,它的最大特点就是"独立"二字。IWDG使用独立的40kHz低速内部RC振荡器(LSI)作为时钟源,这意味着即使主系统时钟出现问题,它仍然能够正常工作。

我记得有一次在做一个工业控制项目时,主时钟因为外部干扰出现了故障,但正是依靠IWDG,系统能够自动复位并恢复正常工作,避免了现场事故的发生。

IWDG的工作机制很简单:它是一个12位的递减计数器,从设定的初始值开始递减,当减到0时就会产生系统复位。我们需要在计数器减到0之前通过"喂狗"操作重新加载计数器值。如果程序运行异常,无法及时喂狗,系统就会被复位。

2.2 精准计算IWDG超时时间

在实际使用中,很多开发者对IWDG的超时时间计算存在误区。这里我分享一个实用的计算公式:

超时时间 = (重载值 + 1) × (4 × 2^预分频系数) / LSI频率

以常见的配置为例:LSI频率为40kHz,预分频系数为4(即64分频),重载值为625:

超时时间 = (625 + 1) × 64 / 40000 = 1.000秒

这里有个细节需要注意:LSI的实际频率可能会有±10%的偏差,所以在对时间精度要求很高的场合,需要根据实际的LSI频率进行计算。我通常会在代码中添加LSI频率校准功能,这样可以提高看门狗定时的准确性。

2.3 STM32CubeMX配置IWDG实战

打开STM32CubeMX,在Pinout & Configuration页面中找到IWDG选项。这里我们需要配置两个关键参数:

预分频系数(Prescaler):可以选择4、8、16、32、64、128、256分频。我一般建议选择64分频,这样可以在保证合理超时时间的同时,减少喂狗操作的频率。

重载值(Reload Value):12位数值,范围0-0xFFF。结合预分频系数,可以计算出需要的超时时间。

配置完成后,STM32CubeMX会自动生成初始化代码:

// IWDG初始化代码
hiwdg.Instance = IWDG;
hiwdg.Init.Prescaler = IWDG_PRESCALER_64;
hiwdg.Init.Reload = 625;
HAL_IWDG_Init(&hiwdg);

2.4 IWDG喂狗技巧与常见问题

喂狗操作看似简单,但实际上有很多需要注意的地方

窗口看门狗WWDG原理与STM32工程实践 窗口看门狗(WWDG)是一种基于时间窗口约束的嵌入式复位机制,其核心原理是仅允许在计数器值处于动态上下限之间时执行喂狗操作,从而同时防范超时未喂狗和过早误喂狗两类故障。相比独立看门狗(IWDG),WWDG依赖APB1系统时钟,天然支持Stop/Standby等低功耗模式,是电池供电、长周期运行设备的关键可靠性保障技术。其技术价值体现在高完整性监控、中断驱动的确定性响应及与RTOS/裸机调度深度协同能力。典型应用场景包括工业传感器节点、医疗可穿戴设备、智能电表等对失效安全与能效双重要求的系统。本文围绕WWDG 阅读详情

相关推荐

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

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

assembly8low的博客 1038

深入理解STM32的“看门狗”:从IWDG与WWDG的区别,到HAL库喂狗策略的最佳实践

本文深入解析STM32的独立看门狗(IWDG)与窗口看门狗(WWDG)的核心区别,包括时钟架构、应用场景及HAL库的最佳喂狗策略。通过对比分析,为嵌入式工程师提供系统稳定性设计的实用指南,涵盖FreeRTOS环境下的任务监控、中断风险规避及状态机设计等高级技巧。

weixin_33964987的博客 338

STM32CubeMX实战指南:WWDG窗口看门狗配置与超时调试

本文详细介绍了STM32CubeMX中WWDG窗口看门狗的配置与调试方法,包括参数设置、中断配置、代码编写及常见问题排查。通过实战案例,帮助开发者掌握如何在工业控制和嵌入式系统中有效使用WWDG监控程序运行状态,确保系统稳定性。

weixin_30414305的博客 444

服务器centos上安装IC618(virtuoso)教程

只需要按照提供的步骤即可实现IC618安装。有需要详情请联系QQ:563962386

swicthsober的博客 1万+

RunHarmony报错解析:如何解决data.use与cell.embeddings维度不匹配问题

本文深入解析了单细胞数据分析中RunHarmony函数报错'non-conformable arguments'的根源,即data.use与cell.embeddings矩阵维度不匹配。核心原因是assay(如RNA与integrated)错配导致细胞ID或数量不一致。文章提供了三种解决方案:最推荐显式指定assay.use参数,也可设置project.dim=FALSE或统一数据环境,并给出了最佳实践指南以避免此类错误。

weixin_29093017的博客 577

复现基于PYNQ-Z2的手写数字识别卷积加速器设计

来源雪天鱼。

eachanm的博客 968

从零到一:用CubeMX和485模块快速上手多摩川绝对式编码器(附清零操作详解)

本文详细介绍了如何使用STM32CubeMX和485模块快速上手多摩川绝对式编码器,包括硬件连接、STM32配置、协议解析及清零操作。通过具体的代码示例和调试技巧,帮助开发者高效实现编码器数据读取和清零功能,特别适合STM32单片机开发者参考。

weixin_30599769的博客 193

Windows环境下ABAQUS、Fortran 编译器及Visual Studio的安装和关联

点击Continue,在随后的弹窗中勾选accept,并点击Customize(注意,在接下来的安装图片中,显示的版本号是2024.2,图片来自于一次失败的安装,懒得再截图了,步骤毫无区别,请见谅)。在下一步中,保持默认选项,之后软件会自动关联到刚才安装到visual studio,随后下一步进行安装(如果电脑中已经安装有其他版本的visual studio,则只保留2022)。在随后的弹窗中,根据指示找到。以防万一,尽量暂时退出所有杀毒软件,关闭防火墙,一般不会有影响,为确保万无一失,可以执行此步。

samurai12的博客 9967

Pixhawk+OpenMV实战:如何用Apriltag实现无人机自动降落(附避坑指南)

本文详细介绍了如何利用Pixhawk飞控和OpenMV摄像头,通过Apriltag视觉标签实现无人机的精准降落系统。从硬件搭建、参数配置到视觉处理代码优化,提供了完整的实战指南和避坑建议,帮助开发者快速实现厘米级精度的自动降落功能。

weixin_27076351的博客 483

Win10系统权限深度解析:如何安全地将C盘所有者从TrustedInstaller变更为Administrators

本文深入解析了Win10系统中C盘文件权限管理的核心机制,解释了为何管理员账户(Administrators)默认无法修改由TrustedInstaller保护的系统文件。文章在强调安全风险的前提下,详细提供了通过图形界面和命令行两种方式,将文件或文件夹所有权从TrustedInstaller安全变更为Administrators的实操步骤,并给出了关键的风险预警与权限恢复方法。

weixin_29305313的博客 549

Claude Code 常见安装失败问题与解决办法

摘要: Claude Code安装失败通常与环境、网络和权限问题有关,而非软件本身。主要误区包括:命令未识别(需检查PATH和终端重启)、网络连接失败(终端代理配置)、权限不足(系统安全限制)及账号认证问题。首次使用应避免复杂任务,建议从基础功能测试开始。快速自检可按终端重启→命令识别→网络→代理→权限→账号状态的顺序排查。理顺终端、网络和权限后,Claude Code运行将更稳定。 (150字)

sg_knight的专栏 6704

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WINCC7.3破解文件

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 从IMX6ULL到边缘AI:一个车牌识别系统的硬件选型与性能优化之旅
下一篇: 从零构建:ESP32开发板的硬件选型与生态全景图
github5actions
博客等级 码龄1天 0粉丝 1824原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值