5.stm32看门狗

article/2025/10/23 6:38:18

1. STM32-独立看门狗IWDG剖析

2. STM32-独立看门狗实例讲解

3. STM32-窗口看门狗WWDG剖析

4. STM32-窗口看门狗实例讲解

一.基础原理

1. 简单理解:

        使用LSI(外部低速时钟),计数,及时喂狗不会复位(看门狗没有减到0喂狗,就认为程序正常工作),不及时喂狗就会导致复位.

2. 看门狗用途

         它的主要功能是在发生系统软件故障时,将系统复位。也可以用于将系统从休眠或空闲模式唤醒。

3.看门狗分类

        (1)STM32 结合安全度、计时精确度和易用性提供了IWDG和WWDG两种看门狗

           监测软件跑飞,或未按预想地运行的情况        

           触发系统复位或产生中断(中断仅针对窗口看门狗)

        (2)独立看门狗IWDG      

           专用时钟LSI       低功耗模式仍可运行      

           对定时的控制比较松 

        (3)窗口看门狗WWDG      

           总线时钟APB1      对定时控制比较严  

           要求主应用程序在规定时间窗口内喂狗

4.看门狗的原理图分析

 注意:看门狗使用LSI,特殊的定时器,固定32KHZ

二.独立看门狗实验一:IWDG

1. 实验要求:

        开启STM32的独立看门狗,按键按下即喂狗,如果超时未喂狗,则看门狗复位系统,用指示灯指示系统复位

2.cubemx创建项目

(1)RCC使用外部晶振,固定配置:目的->项目运行速度最快

IWDG:打开

USART1:打开

按钮,灯:打开

 IWDG配置:

(2)步骤:

mian.c中

<1>while(1){}前

/*
set为高电平,reset为低电平
*/
printf("I am coming \n");
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_7, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_7, GPIO_PIN_RESET);	

<2>while(1){}中

if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0)==GPIO_PIN_RESET){
//独立看门狗的喂狗
HAL_IWDG_Refresh(&hiwdg);
}

<3>实验结果

3s左右没有复位(key6按下),看门狗复位,灯先灭后亮,及时喂狗后灯常亮.


三.stm32窗口看门狗WWDG

1.原理分析

 2.适用情况

 3.原理图分析

 4.看门狗的时钟

连在在APB1上,频率42KHZ

5.注意:

        窗口看门狗的计数器是一个递减计数器,共有 7 位,其值存在控制寄存器 CR 的位 6:0, 即 T[6:0],当 7 个位全部为 1时是 0X7F,这个是最大值

        当递减到 T6 位变成 0时,即从0X40 变为 0X3F时候,会产生看门狗复位。这个值 0X40 是看门狗能够递减到的最小值,

         当递减计数器递减到 0X40 的时候,还不会马上产生复位,如果使能了提前唤醒中断:CFR 位 9 EWI 置 1,则产生提前唤醒中断,如果真进入了这个中断的话,就说明程序肯定是出问题了,

        那么在提前唤醒中断的处理程序中我们就需要做最重要的工作,比如保存重要数据,或者报警等,这个中断我们也叫它死前中断。

 四.实验二:窗口看门狗的实验

1.实验要求

        开启STM32的窗口看门狗,并使能唤醒中断。主程序正常运行时喂狗,用按键中断模拟程序故障死机,此时将触发唤醒中断并产生复位,用LED灯指示唤醒中断的触发。

2.cubemx创建工程

(1)key6设为中断(GPIO_EXPI0),中断就可以看作异常,我们按键按下模拟死机,窗口看门狗复位

(2)PF7(灯)设为输出,RCC设为外部高频时钟

(3)WWDG看门狗设置

 

 原因:看门狗中断要大于按键中断,才可以进行复位

3.步骤:

(1)main.c中

HAL_GPIO_WritePin(GPIOF, GPIO_PIN_7, GPIO_PIN_SET);  //熄灭灯uint8_t wr, tr;wr = WWDG->CFR & 0x7f ;   //获取设置的上窗口值while(1){tr = WWDG->CR & 0x7f;//获取实时的寄存器值if(tr < wr)    //计数器的值小于上窗口的值,进行喂狗{HAL_WWDG_Refresh(&hwwdg);  //喂狗(Hal库找)}}

(2)按键中断的回调函数

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){if(GPIO_Pin==GPIO_PIN_0){printf("程序故障\n");while(1){}    //死循环模拟故障}
}

(3)窗口看门狗的回调函数

void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef* hwwdg)
{HAL_GPIO_WritePin(GPIOF, GPIO_PIN_7, GPIO_PIN_RESET);  //灯亮printf("EarlyWakeup INT\n");
}

注意:<1>由于窗口看门狗运行时间很短,所以printf还没有打印完就结束了

<2>灯RESET为低电平,低电平为亮

4.结果

按键按下中断,灯灭,看门狗复位,灯亮.


http://chatgpt.dhexx.cn/article/332M4e7i.shtml

相关文章

STM32——看门狗

一、简介 STM32F10xxx内置两个看门狗&#xff0c;提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障&#xff1b;当计数器达到给 定的超时值时&#xff0c;触发一个中断(仅适用于窗口型看门狗)或产…

单片机STM32看门狗详解(嵌入式学习)

单片机STM32看门狗 什么是看门狗为什么需要看门狗&#xff1f;STM32CubeMX配置和应用示例独立看门狗&#xff08;IWDG&#xff09;窗口看门狗&#xff08;WWDG&#xff09; 注意事项 什么是看门狗 单片机STM32的看门狗&#xff08;Watchdog&#xff09;是一种硬件定时器&#…

STM32配置看门狗

一、看门狗时间计算公式 时间计算(大概):Tout((4*2^prer)*rlr)/40 (ms). prer:分频数:0~7 rlr:重装载寄存器值 举例&#xff08;4 * 2^4 * 625&#xff09; /401000ms1s 二、如何实际使用&#xff1f; 放狗和喂狗总是一起使用的&#xff0c;程序在溢出时间内喂狗才算合理 在…

stm32看门狗定时器记录

文章目录 1、看门狗介绍2、独立看门狗3、窗口看门狗 1、看门狗介绍 STM32 有两个看门狗&#xff0c;一个是独立看门狗另外一个是窗口看门狗。 独立看门狗简单来说就是一个 12 位的递减计数器&#xff0c;当计数器的值从某个值一直减到 0 的时候&#xff0c;系统就会产生一个复位…

STM32看门狗(独立看门狗与窗口看门狗)

简介 STM32 有两个看门狗&#xff0c;一个是独立看门狗&#xff08;IWDG&#xff09;另外一个是窗口看门狗&#xff08;WWDG&#xff09;&#xff0c;独立看门狗号称宠物狗&#xff0c;窗口看门狗号称警犬。 独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器&#…

STM32看门狗简述

概述 看门狗一般分为硬件看门狗和软件看门狗&#xff0c;主要用来解决程序CPU异常&#xff0c;程序跑飞挂死等问题&#xff0c;提高系统的可靠性。 硬件看门狗是利用一个定时器电路&#xff0c;其定时输出连接到电路的复位端&#xff0c;程序在一定时间范围内对定时器清零(俗…

STM32看门狗作用

STM32F103 独立看门狗 学习笔记 引言 STM32是一系列基于ARM Cortex-M处理器的微控制器。看门狗&#xff08;Watchdog&#xff09;是STM32的一个重要功能模块&#xff0c;它能够帮助程序员实现系统的可靠性和稳定性。 看门狗的作用 在嵌入式系统中&#xff0c;软件有时会因为…

STM32看门狗详解

看门狗的作用&#xff1a;防止单片机因未知原因死机或比我们预期的时间过长长时间不能响应&#xff0c;如果出现这种问题&#xff0c;看门狗就会把单片机复位 独立看门狗&#xff08;IWDG&#xff09;&#xff1a; 时钟来源&#xff1a;内部低速时钟&#xff08;LSI&#xff0…

STM32看门狗

STM32处理器内置了2个看门狗&#xff1a; 独立看门狗 IWDG (Independent Watchdog) 窗口看门狗 WWDG (Window Watchdog) 独立看门狗由LSI低速时钟提供 40kHz &#xff0c;主时钟出故障也不影响&#xff0c;常用IWDG复位电路。 窗口看门狗由APB1分频后提供&#xff0c;主时…

【STM32】看门狗模块

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《STM32学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; &#x1f4c3;看门狗概述 什么是看门狗&#xff1a; 在由单片机构成的微型计算机系统中&#x…

【STM32】stm32独立看门狗(IWDG)

stm32独立看门狗&#xff08;IWDG&#xff09; 0x01 IWDG简介0x02 IWDG主要性能0x03 IWDG寄存器配置 0x01 IWDG简介 STM32F10xxx内置两个看门狗&#xff0c;(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障&#xff1b;当计数器达到给定的超时值时&#xff0c;…

STM32 看门狗详解

目录 1、IWDG 1.1 独立看门狗简介 1.2 独立看门狗的特点 1.3 独立看门狗功能描述 1.4 硬件看门狗 1.5 寄存器访问保护 1.6 调试模式 2、WWDG 2.1 简介 2.2 窗口看门狗主要特点 2.3 窗口看门狗功能说明 2.4 如何设置看门狗超时 2.5 调试模式 3、区别 1、IWDG 1.1…

手把手教你开发stm32——看门狗(基于hal库)

目录&#xff1a; 1.独立看门狗介绍1.1.独立看门狗简介1.2.独立看门狗功能描述1.3.独立看门狗工作框图 2.独立看门狗实验2.1.cubemx配置2.2.具体代码实现 3.独立看门狗的相关寄存器3.1.键寄存器&#xff08;IWDG_KR&#xff09;3.2.预分频寄存器3.3.重装载寄存器&#xff08;IW…

STM32—看门狗详解入门(独立看门狗、窗口看门狗)

目录 一、什么是看门狗&#xff1f; 二、独立看门狗IWDG 1.特点、本质及原理 2.配置 3.main.c代码 三、窗口看门狗WWDG 1.特点、本质及原理 2.配置 3.main.c代码 四、独立看门狗与窗口看门狗的比较 一、什么是看门狗&#xff1f; 看门狗主要是用来监测单片机运行状态…

STM32(七)------- 独立看门狗(IWDG)

独立看门狗 介绍STM32独立看门狗简介原理功能描述IWDG关键寄存器描述键寄存器(IWDG_KR)状态寄存器(IWDG_SR)预分频寄存器(IWDG_PR)重装载寄存器(IWDG_RLR)IWDG寄存器映像和复位值 使用启动 STM32 的独立看门狗应用设计功能设计程序设计 后续 介绍 STM32独立看门狗简介 STM32 …

STM32—窗口看门狗(WWDG)

STM32—窗口看门狗(WWDG) 窗口看门狗&#xff08;WWDG&#xff09; STM32—窗口看门狗(WWDG)窗口看门狗&#xff08;WWDG&#xff09;WWDG 简介WWDG 功能框图剖析窗口看门狗时钟计数器时钟计数器窗口值计算看门狗超时时间 怎么用 WWDG独立看门狗所用到的库函数窗口看门狗操作步…

初学STM32之看门狗

初学STM32之看门狗 一、看门狗概述 1.什么是看门狗 单片机在工作中常常会受到来自外界电磁场的干扰&#xff0c;造成程序跑飞&#xff0c;而陷入死循环&#xff0c;程序的正常运行被打断&#xff0c;使得系统无法正常工作&#xff0c;造成整个系统陷入停滞状态。所以为了对单…

matlab 工具箱 GATBX 的安装,安装Sheffield Matlab遗传算法工具箱的建议

在通常的遗传算法学习中&#xff0c;可以直接对目标函数进行编写&#xff0c;但是当我们需要使用simulink进行仿真优化需要用到遗传算法时&#xff0c;我这里有两种建议&#xff1a;①在模型中添加sfunction然后使用自己喜欢的语言进行编写&#xff1b;②使用Matlab遗传算法工具…

MATLAB遗传算法工具箱的函数及实例

遗传算法&#xff08;GA&#xff09;是一种进化算法&#xff0c;是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型&#xff0c;是一种通过模拟自然进化过程搜索最优解的方法。 遗传算法把问题参数编码为染色体&#xff0c;利用层层迭代的方式进行选择、…

基于Matlab遗传算法工具箱解决物流中心选址

目录 1.问题 2.建模 3.Matlab编程、求解 1.问题 物流配送中6个客户的位置坐标和配数数量如表1所示&#xff0c;如何设置物流配数中心使得配送量最小。 2.建模 3.Matlab编程、求解 编写目标函数min 遗传算法只能求最小值 function y fun(x)site[52 42 93 62 90 70;…