当前位置:文档之家› STM32F103V IWDG 独立看门狗操作

STM32F103V IWDG 独立看门狗操作

STM32F103V IWDG 独立看门狗操作
最近编写一个程序,因为需要考虑到可靠性,所以需要在程序了添加看门
狗功能。

查了下STM32 的相关资料,于是利用下库文件来实现IWDG 独立看
门狗操作。

首先需要调用库文件#include “stm32f10x_iwdg.h”再配置下看门狗
相关参数
//////////独立看门狗IWDG 设置////////////////////////////////////void WatchDog_int(void)
// 独立看门狗IWDG 设置{/* Enable write access to IWDG_PR and IWDG_RLR registers */ IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); /* IWDG counter clock: 32KHz(LSI) / 32 = 1KHz */ IWDG_SetPrescaler(IWDG_Prescaler_32); //独立看门狗预分频为32 /* Set counter reload value to 1000 */ IWDG_SetReload(1000);//设置IWDG 重装载值范围为0~0x0FFF;
/* Reload IWDG counter */ IWDG_ReloadCounter();//按照重装载的寄存器的值来重装载IWDG 计数器
/* Enable IWDG (the LSI oscillator will be enabled by hardware) */ IWDG_Enable();//使能独立看门狗}
在主程序中实现喂狗的程序如下:
///////////主程序//////////////////int main(void){ RCC_Configuration(); //时钟配置NVIC_Configuration();//中断配置GPIO_Configuration();//GPIO 配置WatchDog_int();// 独立看门狗IWDG 设置/* 检查是否看门狗复位*/
if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET) { printf(“WatchDog Reset\r\n”); speakertest(); RCC_ClearFlag();//清除标志位} else {;}
}。

相关主题