🐕 看门狗定时器
目标
配置独立看门狗(IWDG),模拟系统死锁场景,验证看门狗自动复位功能。
硬件准备
- Tide 开发板 × 1
- USB 数据线 × 1
代码示例
#include "stm32h7xx_hal.h"
IWDG_HandleTypeDef hiwdg;
void IWDG_Init(void) {
hiwdg.Instance = IWDG1;
hiwdg.Init.Prescaler = IWDG_PRESCALER_64;
hiwdg.Init.Reload = 2000; /* ~4 秒超时 */
hiwdg.Init.Window = IWDG_WINDOW_DISABLE;
HAL_IWDG_Init(&hiwdg);
}
int main(void) {
HAL_Init();
IWDG_Init();
while (1) {
HAL_IWDG_Refresh(&hiwdg); /* 喂狗 */
HAL_Delay(1000);
/* 注释掉上面的喂狗行可触发复位 */
}
}
步骤说明
- 初始化 IWDG,设置约 4 秒超时。
- 在主循环中定期调用 HAL_IWDG_Refresh() 喂狗。
- 注释掉喂狗语句,观察系统在 4 秒后自动复位。
- 通过串口打印验证复位行为。
提示:
遇到问题可查看 Q&A 页面,或在工蜂仓库提交 Issue。