由于单片机在工作过程中可能会受到干扰,造成程序跑飞,陷入死循环,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于检测单片机程序运行状态的模块或者芯片俗称”看门狗“。
独立看门狗工作在主程序之外,能够完全独立工作,它的时钟是专用的低速时钟(LSI),由VDD供电,在停止模式和待机模式下仍能工作。需要在时间溢出之前进行喂狗,否则单片机会一直复位
独立看门狗的时钟由独立的
RC
振荡器
LSI
提供,即使主时钟发生故障它仍然有效,非常独立。启用
IWDG
后,
LSI
时钟会自动开启。
LSI
时钟频率并不精确,
F1
用
40kHz
。
LSI
经过一个
8
位的预分频器得到计数器时钟。
分频系数算法:
PSC=4*2^prer
*prer
是
IWDG_PR
的值。
独立看门狗溢出时间公式:
比如要设定溢出时间为1s,可以在CubeMX里设置PSC=64,RLR=625。
HAL_IWDG_Refresh(&hiwdg);使用此函数能进行喂狗操作。