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();} }
工程获取
三连加关注后点击头像获取