stm32独立看门狗程序
时间: 2023-08-30 20:10:35 浏览: 97
以下是一个简单的STM32独立看门狗程序:
```
#include "stm32f10x.h"
void IWDG_Configuration(void);
int main(void)
{
IWDG_Configuration();
while(1)
{
// do something
// 如果程序出现死循环或者停止运行,独立看门狗会在一定时间后复位系统
}
}
void IWDG_Configuration(void)
{
// 开启看门狗时钟
RCC_LSICmd(ENABLE);
// 等待看门狗时钟就绪
while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET);
// 看门狗定时器预分频值为256
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
IWDG_SetPrescaler(IWDG_Prescaler_256);
// 看门狗定时器计数器重载值为625
IWDG_SetReload(625);
// 使能看门狗
IWDG_Enable();
}
```
这个程序通过开启STM32内部的LSI(低速内部)时钟来驱动看门狗定时器,预分频值为256,重载值为625,因此看门狗的计时周期为256 * 625 / 40000 = 4秒。在主函数的while循环中,当程序出现死循环或停止运行时,独立看门狗会在4秒后复位系统。
阅读全文