IWDG简介
STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障。
说人话就是能解决程序跑飞的问题。
编写代码思路
-1- 使用这个功能必须解除写保护
-2- IWDG使用的是低速内部时钟 (LSI
-3- 分频系数和定时时间
代码编写(可直接拷贝使用)
#include "stm32f10x.h" #include "usart.h" #include "delay.h" void IWDG_CFG(void) { //判断是不是独立看门狗复位 if (RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET) { printf("IwDG RESET\r\n"); RCC_ClearFlag(); } //打开低速内部时钟 RCC_LSICmd(ENABLE); //等待时钟平稳 while (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET); //打开写保护 IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //设置分频 IWDG_SetPrescaler(IWDG_Prescaler_32); //设置重装值 IWDG_SetReload(128); //喂一次狗 IWDG_ReloadCounter(); //开启看门狗 IWDG_Enable(); } int main(void) { delay_init(); uart_init(115200); IWDG_CFG(); while(1) { delay_ms(110); IWDG_ReloadCounter(); } }
工程获取
三连加关注后点击头像获取
标签:RESET,IWDG,void,看门狗,STM32,include,RCC From: https://www.cnblogs.com/wm9-/p/17858439.html