STM32的独立看门狗详解

目录

1.独立看门狗是什么?

2.独立看门狗的作用

3.独立看门狗的实现原理

4.独立看门狗用到的寄存器

[4.1 IWDG_KR (关键字计时器)](#4.1 IWDG_KR (关键字计时器))

[4.2 IWDG_PR(预分频寄存器)](#4.2 IWDG_PR(预分频寄存器))

[4.3 IWDG_RLR(重装载寄存器)](#4.3 IWDG_RLR(重装载寄存器))

5.独立看门狗实现代码

[5.1 初始化代码](#5.1 初始化代码)

5.2喂独立看门狗


1.独立看门狗是什么?

STM32的独立看门狗(Independent Watchdog,简称IWDG)是一个完全独立的低功耗硬件定时器,它由一个专用的低速时钟(LSI,Low Speed Internal clock)驱动。这个时钟是独立于主时钟系统的,因此即使在主时钟失效的情况下,独立看门狗依然能够继续工作。

2.独立看门狗的作用

STM32的独立看门狗的主要功能是监控MCU的运行状态,并在系统发生故障或死锁时,通过产生复位信号来重新启动系统。如果要保持系统不重启,需要通过不断地"喂狗"(即更新看门狗计数器的值)来实现。如果在预设的时间窗口内没有"喂狗",那么看门狗计数器就会溢出,从而触发复位操作。

3.独立看门狗的实现原理

独立看门狗由内部低速时钟(LSI)驱动的,LSI实际时钟是一个 15~47Khz之间不精确的时钟,因为看门狗不需要那么高的精度,所以并不影响使用,独立看门狗其实就是一个十二位的计数器,只要这个计数器减少成0,就会触发MCU重启。

4.独立看门狗用到的寄存器

4.1 IWDG_KR (关键字计时器)

(1)在 IWDG_KR中写入 0xCCCC 开启独立看门狗

(2)在 IWDG_KR中写入 0xAAAA ,IWDG_RLR 中的值就会被重新加载到独立看门狗的计数器,避免MCU发生重启。

(3)在IWDG_KR 中写入 0x5555 可以开启IWDG_PR 和 IWDG_RLR 寄存器的写入功能,因为这两个寄存器的写入功能是被保护的,需要先开启写入功能。

4.2 IWDG_PR(预分频寄存器)

IWDG_PR是存储独立看门狗分频系数的寄存器,最小为4分频,最高为256分频。

4.3 IWDG_RLR(重装载寄存器)

这个寄存器的低12位有效,就是每次发生喂狗以后,被装载到独立看门狗计数器里面的值。

5.独立看门狗实现代码

5.1 初始化代码

cpp 复制代码
void IWDG_Init(u8 prer,u16 rlr)
{
    IWDG_Handler.Instance=IWDG;
    IWDG_Handler.Init.Prescaler=prer;	//设置IWDG分频系数
    IWDG_Handler.Init.Reload=rlr;		//重装载值
    HAL_IWDG_Init(&IWDG_Handler);		//初始化IWDG  
	
    HAL_IWDG_Start(&IWDG_Handler);		//开启独立看门狗
}

这里prer我们传入的分频系数是IWDG_PRESCALER_64(也就是4),rlr重载值我们设置的是500,根据公式时间计算(大概):Tout=((4*2^prer)*rlr)/32 (ms),代入进去就是64*500/32=1000ms,得出定时器的倒计时时间为1秒,如果1秒内不发生喂狗,那么MCU就会被重启,我们平时做嵌套函数等耗时工作的时候一定要注意及时喂狗,避免系统正常运行中被重启。

5.2喂独立看门狗

cpp 复制代码
void IWDG_Feed(void)
{   
    HAL_IWDG_Refresh(&IWDG_Handler); 	//喂狗
}

这个函数HAL库已经帮我们实现好了,我们注意及时调用就可以了。

相关推荐
HRTOS5 分钟前
HRTOS:一个名字背后的目标——不断逼近硬实时
经验分享·单片机·系统架构·51单片机
UrSpecial2 小时前
GPIO 是什么?
单片机·嵌入式硬件
修船大队长4 小时前
配置接受报文每个报文对应一个mailbox配置流程记录
网络·单片机·mcu
YCOSA20255 小时前
雨晨 Windows 11 IoT 企业版 Edge 轻装 VCDX 29680.1000
windows·物联网
搁浅小泽6 小时前
二极管选型技术规范
单片机·嵌入式硬件·汽车
搁浅小泽6 小时前
电感选型技术规范
单片机·嵌入式硬件·汽车
..Dauntless..7 小时前
【stm32】串口——在MCU内部的工作过程
stm32·单片机·嵌入式硬件
lzqrzpt7 小时前
临沂LED驱动电源工程选型标准与工艺对比解析
python·单片机·嵌入式硬件·物联网
小黄蚁8 小时前
使用LVGL模拟示波器创建正弦函数波形
单片机·学习
microrain9 小时前
权限改了,接口立刻生效,菜单要等重新登录:SagooIoT 权限体系的四道闸门
物联网·golang·开源·sagooiot