// LSI ≈ 32kHz,预分频 32 → 1kHz,重载 999 → 1s
IWDG_HandleTypeDef hiwdg = {0};
hiwdg.Instance = IWDG;
hiwdg.Init.Prescaler = IWDG_PRESCALER_32;
hiwdg.Init.Reload = 999;
HAL_IWDG_Init(&hiwdg);
// 主循环每 <1s 喂一次:
while(1){
/* 任务逻辑 */
HAL_IWDG_Refresh(&hiwdg); // 喂狗:重置计数
}
// 若死循环/跑飞 → 1s 后硬件复位,设备自动恢复