2023版 STM32实战8 独立看门狗(IWDG)

发布时间 2023-11-27 09:13:16作者: Wm9实验室

 

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();
    }        
    
    
    
 }

 

工程获取

三连加关注后点击头像获取