news 2026/7/1 14:56:59

STM32如何判断芯片是被看门狗复位过的?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32如何判断芯片是被看门狗复位过的?

通过相关的寄存器可以看出,需要关注 RCC_CSR 寄存器中的以下两个标志位:

IWDG_ANY_RSTF(独立看门狗复位标志),如果该位为 1,说明发生了独立看门狗复位。

WWDG_ANY_RSTF(窗口看门狗复位标志),如果该位为 1,说明发生了窗口看门狗复位。

参考代码

标准库实现:

if (RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET) { // 发生了独立看门狗复位 // 执行你的处理逻辑,比如记录日志 } if (RCC_GetFlagStatus(RCC_FLAG_WWDGRST) != RESET) { // 发生了窗口看门狗复位 } // 最后务必清除标志位,否则下次复位时这些位可能还保持为 1 RCC_ClearFlag();

HAL库实现:

if (__HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST)) { // 独立看门狗复位逻辑 } if (__HAL_RCC_GET_FLAG(RCC_FLAG_WWDGRST)) { // 窗口看门狗复位逻辑 } // 清除所有复位标志 __HAL_RCC_CLEAR_RESET_FLAGS();

关键注意事项


检测时机: 必须在系统启动后的初始化阶段(如 main 函数开头)尽早检测这些标志位。

手动清除: STM32 的复位标志位具有“累积性”。如果芯片先因为看门狗复位,重启后你没有调用 __HAL_RCC_CLEAR_RESET_FLAGS(),那么下一次即便你按下 Reset 按键,RCC_FLAG_IWDGRST 可能依然是 1。所以检测完一定要清除。

低功耗影响: 如果你的设备频繁进入待机模式,某些复位标志位可能会表现不同,需结合 RCC_FLAG_PORRST(上电/掉电复位)综合判断。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 21:07:35

低功耗不是口号:LPWAN智能井盖如何实现3年免维护?

在智慧城市基础设施监测场景中,井盖看似微不足道,却是典型的“部署易、运维难”节点。它分布广、环境恶劣、无外部供电,且要求长期稳定运行——这对物联网终端的低功耗设计提出了极高要求。近年来,基于LPWAN(低功耗广域…

作者头像 李华
网站建设 2026/7/1 4:55:45

UVa 137 Polygons

题目描述 题目给出了两个凸多边形,这两个多边形可能重叠,也可能不重叠。如果它们重叠,重叠的程度和方式也会有所不同。要求编写一个程序,读取两个凸多边形的顶点坐标(按顺时针顺序给出),并计算…

作者头像 李华
网站建设 2026/6/21 1:40:07

UVa 138 Street Numbers

题目描述 一位计算机程序员住在一条街上,街上的房屋从 111 开始依次编号。每天晚上她遛狗时,都会随机选择向左或向右走,沿着街道一直走到尽头再折返。某天晚上,她计算了途中经过的房屋的街号之和(不包括自己家&#xf…

作者头像 李华