看门狗(IWDG/WWDG)+ CRC硬件校验 完全笔记【STM32F103 标准库实现】

一、看门狗是什么?先建立准确的直觉

1.1 为什么需要看门狗

嵌入式程序运行时,可能因为各种意外情况"跑飞"或者卡死:
  外部干扰导致程序计数器PC跳到了错误的地址
  某个外设操作卡在了死循环里等一个永远不会来的标志位
  之前"内存管理笔记"提到的栈溢出踩坏了关键数据
  第三方库或者自己代码里的隐藏bug,某些边界条件下进入死循环

这些情况一旦发生,产品可能就此完全失去响应,
如果是没人值守的现场设备(工业控制器、传感器节点),
没有人能随时跑去手动按复位键,产品会一直卡死在那里。

看门狗就是解决这个问题的硬件机制:
  一个独立运行的计数器,program必须在计数器溢出之前"定期打卡"(俗称"喂狗"),
  如果因为程序跑飞、卡死,导致长时间没有"打卡",
  看门狗就会认定"程序已经失控",强制触发芯片复位,让系统重新启动、恢复运行

这不是"修复bug",而是一种"失控之后的兜底恢复手段"——
出现异常时,与其让设备一直死机,不如自动重启,至少能恢复响应,
生产环境里能大幅降低"死机后需要人工现场处理"的概率。

1.2 STM32F103 的两种看门狗——对比清楚才不会用混

对比项 IWDG(独立看门狗) WWDG(窗口看门狗)
时钟来源 独立的内部低速时钟LSI(约40kHz) 挂在APB1总线时钟(PCLK1)上
与主时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

除不掉的灰色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值