查看: 7|回复: 0

看门狗到底在防谁?IWDG 和 WWDG 的分工一次讲清

[复制链接]
发表于 1 小时前 | 显示全部楼层 |阅读模式
本帖最后由 生产队队长 于 2026-11-5 22:28 编辑

🐕 程序“死机”从来不是小概率事件:电磁干扰、寄存器跑飞、死循环、等一个永远不来的标志位……看门狗的哲学很朴素——
⏰我定时来喂你;你不喂,我就当你死了,直接重启。


🐕一、STM32 里两条狗,防的层面不一样
  • IWDG(独立看门狗):防“整条命没了”。由独立低速时钟(LSI)驱动,主时钟挂了它照样跑,超时就是彻底复位。兜底用,超时可放宽些(1~2 秒);
  • WWDG(窗口看门狗):防“活得太离谱”。除了不能超时,喂得太早也要复位,喂狗必须落在时间窗口内。它防的是程序跑飞后“碰巧路过喂狗代码”的假活。


🛠️二、工程上三条经验
  • ✅ 喂狗放主循环里,别放定时器中断——中断活着,不代表主循环活着;
  • ✅ 多任务系统:喂狗条件 = 所有关键任务心跳正常,别让一个任务假死、全队躺平;
  • ✅ 复位后读 RCC 复位标志,把看门狗复位记进日志,方便复盘。


💡三、一句话
IWDG 保命,WWDG 保真。

💬互动一下:你的项目两条狗都用了吗?有没有被 WWDG“窗口太窄”坑过的经历?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号
免责声明|Archiver|手机版|小黑屋|半导贴吧

相关侵权、举报、投诉及建议等,请发 E-mail:1152577621@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|渝ICP备2024033348号|渝ICP备2024033348号-1

在本版发帖
关注公众号
QQ客服返回顶部