看门狗要素以及stm32看门狗

article/2025/10/23 3:42:56
  1. 阅读看门狗资料,要把握以下部分
    1. 原理图
    2. 复位CPU条件
    3. 使能以及关闭看门狗
    4. 喂狗(方式  时间)
    5. 寄存器
    6. Debug模式下是否使能
  2. stm32包括2个看门狗,拥有不同的时钟
    1. 内置 low-speed clock (LSI  40KHZ) ,用于 Independent watchdog (IWDG)
    2. from the APB1 clock,用于Window watchdog(WWDG)
    3. 区别
      1. IWDG安全性能高,他是独立时钟,独立运行,但是由于时钟独立,因此频率不高(40KHZ)
      2. WWDG适用于对时间要求精准
        1. 时钟来自外部,频率高,可以很高精度
        2. 可以设置喂狗窗口,过早喂狗、过晚喂狗都会复位CPU,可以实现更精准的控制要求
  3. 独立看门狗 Independent watchdog (IWDG)
    1. 原理图
    2. 复位CPU条件
      1. 倒计时(downcounter)从0xFFF递减,等于0时候复位CPU
    3. 使能以及关闭看门狗
      1. Hardware watchdog使能,上电自动启动
      2. 没有上电自动启动,往 IWDG_KR 写入 0xCCCC,启动IWDG
      3. CPU复位后,看门狗随之复位
    4. 喂狗(方式  时间)
      1. 方式
        1. 往 IWDG_KR 写入0xAAAA,将 IWDG_RLR 数值加载进计时器
        2. 只有在 IWDG_SR  Bit 1   RVU=0(不在更新),才能改变IWDG_RLR的数值
      2. 时间
        1. 看门狗复位时间= (加载值/40) * prescaler divider value 毫秒,加载值范围0-4095,prescaler divider value=4 / 8 / 16 / 32 / 64 / 128 / 256
        2. 例如加载值=0xFFF, IWDG_PR[2:0] =5(prescaler divider value=128)
          1. 看门狗时间=(0xFFF /40) * 128 毫秒=13.104秒
          2. 最大时间 6553ms
        3. 设计原则
          1. prescaler divider value尽量最小,这样单个计数代表的时间越大
    5. 寄存器
      1. Key register,IWDG_KR
      2. 预分频器,IWDG_PR  [2:0]
        1. 先往 IWDG_KR 写入 0x5555,才能修改IWDG_PR 数值
      3. 重新装载寄存器,IWDG_RLR
        1. 先往 IWDG_KR 写入 0x5555,才能修改IWDG_RLR数值
      4. 状态寄存器,IWDG_SR
        1. Bit 1   RVU: Watchdog counter reload value update(更新中,RVU=1,此时不能改变IWDG_RLR),硬件置位/复位
        2. Bit 0   PVU: Watchdog prescaler value update(更新中,PVU=1,此时不能改变IWDG_PR  ),硬件置位/复位

    6. Debug模式下是否使能
      1. 取决于 DBG_IWDG_STOP configuration bit in DBG module
      2. 如果需要 Debug模式下不使能,可以在main函数调用__HAL_DBGMCU_FREEZE_IWDG
      3. int main(void)
        {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *///当内核进入调试状态时看门狗停止工作__HAL_DBGMCU_FREEZE_IWDG();/* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();

  4. 窗口看门狗  Window watchdog (WWDG)——Programmable free-running downcounter
    1. 原理图
    2. 复位CPU条件
      1. 当倒计时(downcounter ) < 0x40(7-bit downcounter 从 0x40 变成 0x3F (T6 bit=0))
      2. 或者:窗口大小为  0x3F~WWDG_CFR[6:0],当倒计时器在窗口之外(大于WWDG_CFR)的数值被重新加载的时候,复位CPU
    3. 使能以及关闭看门狗
      1. 使能:WDGA bit i in  WWDG_CR  置位,使能后不能关闭看门狗,只有等到CPU复位
      2. 即使看门狗不使能,倒计时器(downcounter )还会在运行
      3. CPU复位后,看门狗复位(不能软件复位)
    4. 喂狗(方式  时间)
      1. 倒计时器数值在窗口之内才能重新加载(喂狗),否则会复位CPU
      2.  喂狗:写入 WWDG_CR,T6一定要为1,[T5:0]为超时计数
      3. 看门狗复位时间(36MHZ  最大58.25ms )
    5. The Early Wakeup Interrupt (EWI)
      1. 当倒计时小于0x40(T6=0)时候,WWDG会复位设备

      2. 倒计时等于0x40时候,可以产生EWI中断

      3. 使能中断: EWI bit in  WWDG_CFR 置位

      4. 清除中断:写0到 EWIF bit in WWDG_SR

      5. 中断产生在设备复位之前

    6. 寄存器
      1. 控制寄存器  WWDG_CR
      2. 配置寄存器  WWDG_CFR
      3. 状态寄存器  WWDG_SR
        1.  Bit 0 EWIF:中断标志位,有中断等于1,中断不使能也会等于1,写入0复位标志位,写入1无效
    7.  Debug模式下是否使能
      1.  取决于 DBG_IWDG_STOP configuration bit in DBG module
    8.   
  5. 定时器的选择与使用
    1. 2个看门狗都是用,一个主用,一个备用
    2. WWDG 有自带中断,方便记录看门狗复位的现场,查找复位原因,作为主用
    3. IWDG作为备用,以防WWDG 损坏
    4. WWDG 的超时时间很短,一般在几十ms左右。如果喂狗条件不能满足,就不要使用WWDG
    5. 使用WWDG ,可以把窗口开到最大( WWDG_CFR[bit6:bit0] = 0x7F ),避免在窗口外喂狗触发CPU复位
    6. 喂狗时间不超过1/2超时时间(IWDG超时时间1.6s——外部看门狗超时时间为1.6秒,喂狗时间不超过0.8秒

http://chatgpt.dhexx.cn/article/J5JDK6rb.shtml

相关文章

STM32 CubeMX 看门狗

文章目录 看门狗STM32的内置看门狗WWDG-窗口看门狗CubeMX操作步骤1&#xff09;使能 WWDG时钟2&#xff09;设置窗口值 ,分频数 和计数器初始值3&#xff09;开启 WWDG4&#xff09;使能中断通道并配置优先级&#xff08;如果开启了 WWDG中断&#xff09;5&#xff09; 编写中断…

关于我对stm32看门狗的一些理解(基于正点原子)

咕咕咕之后想更会儿stm32哈哈哈&#xff0c;但是其实是之前自己写的笔记&#xff0c;想着以后就写在一起吧&#xff0c;我自己也更好去找到自己写的玩意~毕竟总所周知&#xff0c;博客都是写给自己的。 &#xff08;虽然好像现在自己都看不懂了我的天哪&#xff09; 一.什么是…

stm32看门狗的定义与分类

stm32看门狗 一、定义 由于单片机的工作常常会受到来自外界电磁场的干扰&#xff0c;造成程序的跑飞&#xff0c;而陷入死循环&#xff0c;程序的正常运行被打断&#xff0c;由单片机控制的系统无法继续工作&#xff0c;会造成整个系统的陷入停滞状态&#xff0c;发生不可预料…

STM32看门狗超时时间计算

独立看门狗 公式 超时时间的公式为 &#xff1a;超时时间 &#xff1a;IWDG_PR寄存器中位2:0的十进制值 &#xff1a;重装载寄存器IWDG_RLR所对应的重装载数值 公式解读 首先&#xff0c;我们要明白&#xff1a; 独立看门狗内部是一个递减计数器。如果寄存器中的装载数值…

5.stm32看门狗

1. STM32-独立看门狗IWDG剖析 2. STM32-独立看门狗实例讲解 3. STM32-窗口看门狗WWDG剖析 4. STM32-窗口看门狗实例讲解 一.基础原理 1. 简单理解: 使用LSI(外部低速时钟),计数,及时喂狗不会复位(看门狗没有减到0喂狗,就认为程序正常工作),不及时喂狗就会导致复位. 2. 看…

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 …