stm32独立看门狗程序
时间: 2023-08-30 10:10:33 浏览: 82
以下是一个基本的STM32独立看门狗程序:
```c
#include "stm32f10x.h"
#include "stm32f10x_iwdg.h"
void IWDG_Configuration(void);
int main(void)
{
IWDG_Configuration();
while (1)
{
// do something
IWDG_ReloadCounter(); // 重载看门狗计数器
}
}
void IWDG_Configuration(void)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); // 允许写入IWDG_PR和IWDG_RLR寄存器
IWDG_SetPrescaler(IWDG_Prescaler_256); // 设置预分频器,分频系数为256
IWDG_SetReload(0xFFF); // 设置计数器重载值为0xFFF
IWDG_ReloadCounter(); // 重载看门狗计数器
IWDG_Enable(); // 启动看门狗
}
```
在上面的程序中,我们首先调用了`IWDG_Configuration()`函数来配置独立看门狗。在该函数中,我们首先允许写入IWDG_PR和IWDG_RLR寄存器,然后设置预分频器为256,计数器重载值为0xFFF(最大值),并且重载看门狗计数器。最后,我们启动独立看门狗。
在主函数中,我们通过不断重载看门狗计数器来避免看门狗复位。如果在某些时候主程序卡住了,看门狗计数器会超时并自动复位系统。
阅读全文