Tstm32f407窗口看门狗的代码
时间: 2023-09-17 15:13:09 浏览: 41
以下是基于STM32F407芯片的窗口看门狗代码示例:
```c
#include "stm32f4xx.h"
void Window_Watchdog_Init(uint32_t timeout, uint32_t window)
{
// 使能PWR时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
// 使能RCC时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);
// 设置看门狗参数
WWDG_SetPrescaler(WWDG_Prescaler_8);
WWDG_SetWindowValue(window);
WWDG_EnableIT();
WWDG_SetCounter(timeout);
// 使能看门狗
WWDG_Enable(WWDG);
}
int main(void)
{
// 初始化窗口看门狗
Window_Watchdog_Init(0x7f, 0x7a);
while(1)
{
// 每次循环重载看门狗计数器
WWDG_SetCounter(0x7f);
}
}
```
其中,`Window_Watchdog_Init`函数用于初始化窗口看门狗,参数`timeout`为计数器最大值,即当计数器达到该值时会触发看门狗复位;参数`window`为窗口值,即当计数器值在`[window, timeout]`范围内时不会触发看门狗复位。
在`main`函数中,每次循环都需要重载看门狗计数器,以防止计数器达到最大值导致看门狗复位。