stm32 看门狗 1秒 库函数版本
时间: 2024-10-23 15:12:46 浏览: 45
STM32F1开发指南-库函数版本_V3.1 .pdf
5星 · 资源好评率100%
STM32的看门狗(WDT)通常用于监控微控制器的运行状态,防止程序陷入无限循环导致系统死机。如果你想要设置一个1秒的时间间隔,你可以使用库函数如`HAL_WDG_Init()`和`HAL_WDG_Start()`。
首先,你需要初始化看门狗寄存器,例如这样:
```c
void init_wdt_1s(void) {
HAL_RCC_WWDG_CLK_ENABLE(); // 启动看门狗时钟
HAL_WDG_Init(&hwdg, &wdg_cfg); // wdg_cfg是WDG_InitTypeDef类型的结构体,包含WWDG Prescaler(计数器分频)、窗口大小等配置
wdg_cfg.Prescaler = WWDG_Prescaler_1; // 设置1秒周期,Prescaler_1表示1000个计数周期为1s
wdg_cfg.Window = 0x7fff; // 对于大多数STM32系列,这是默认值,表示从0开始计数,计到0xFFFF就会复位
HAL_WDG_MspInit(&hwdg); // 初始化看门狗的设备资源
HAL_WDG_Start(&hwdg); // 开启看门狗计数
}
```
然后,在适当的时候调用`HAL_WDG_Stop(&hwdg)`暂停计数,当需要恢复1秒超时时再调用`HAL_WDG_Start(&hwdg)`。
阅读全文