看门狗完全笔记 —— ISTM32 标准库实现(工业/车载产品必备)

看门狗完全笔记 —— ISTM32 标准库实现(工业/车载产品必备)
一、看门狗是什么?为什么工业产品必须有?从一个真实故障场景开始场景:工厂的电机控制器,程序跑了几天突然停转。 工程师远程看不到,只能派人去现场按复位按钮。 分析: 程序可能因为以下原因死机: ① 野指针写坏了栈,导致 HardFault ② 某个 while 循环因条件异常永远不退出 ③ 中断优先级配置错误导致死锁 ④ 电源波动导致程序跑到未知地址执行 这些问题测试时可能不出现,现场偶发,极难复现。看门狗的解决方案看门狗(Watchdog Timer,WDT)的本质: 一个硬件递减计数器,如果程序不在规定时间内"喂狗"(重置计数器), 计数器减到 0,硬件强制复位 MCU。 效果: 程序死机 → 无法喂狗 → 超时 → 自动复位 → 程序重新启动 就像有人盯着你工作,你必须定期打卡,否则被"踢出去"重来 代价: 正常运行时必须周期性喂狗,不能忘,这本身也是一种程序健康证明STM32F103 的两种看门狗特性IWDG(独立看门狗)WWDG(窗口看门狗)时钟来源LSI(约 40kHz,独立)PCLK1(APB1,36MHz)复位条件计数器减到 0(太晚喂