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库已经帮我们实现好了,我们注意及时调用就可以了。

相关推荐
中科岩创3 小时前
榆能横山煤电厂及周边建筑物爆破振动和位移自动化监测
物联网
yutian06068 小时前
Keil MDK下载程序后MCU自动重启设置
单片机·嵌入式硬件·keil
析木不会编程11 小时前
【小白51单片机专用教程】protues仿真独立按键控制LED
单片机·嵌入式硬件·51单片机
光路科技15 小时前
八大网络安全策略:如何防范物联网(IoT)设备带来的安全风险
物联网·安全·web安全
枯无穷肉15 小时前
stm32制作CAN适配器4--WinUsb的使用
stm32·单片机·嵌入式硬件
不过四级不改名67715 小时前
基于HAL库的stm32的can收发实验
stm32·单片机·嵌入式硬件
嵌入式科普16 小时前
十一、从0开始卷出一个新项目之瑞萨RA6M5串口DTC接收不定长
c语言·stm32·cubeide·e2studio·ra6m5·dma接收不定长
嵌入式大圣16 小时前
单片机UDP数据透传
单片机·嵌入式硬件·udp
云山工作室16 小时前
基于单片机的视力保护及身姿矫正器设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·毕设
嵌入式-老费16 小时前
基于海思soc的智能产品开发(mcu读保护的设置)
单片机·嵌入式硬件