当前位置: 首页 > news >正文

[STM32]Day14独立看门狗+窗口看门狗

WDG看门狗

WDG(Watch Dog),看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠性和安全性

看门狗本质上是一个定时器,当指定事件范围内,程序没有执行喂狗(重置计数器)操作时,看门狗硬件电路就自动产生复位信号

STM32内置两个看门狗:

  • 独立看门狗(IWDG):独立工作,对时间精度要求较低
  • 窗口看门狗(WWDG):要求看门狗在精确计时窗口起作用

独立看门狗框图

IWDG键寄存器

键寄存器本质上是控制寄存器,用于控制硬件电路的工作

在可能存在干扰的情况下,一般通过在整个键寄存器写入特定值来代替控制寄存器写入一位的功能,以降低硬件电路受到干扰的概率

写入键寄存器的值作用
0xCCCC启动独立看门狗
0xAAAAIWDG_RLR中的值重新加载到计数器(喂狗)
0x5555解除IWDG_PR和IWDG_RLR的写保护
其他值启用IWDG_PR和IWDG_RLR的写保护

IWDG超时时间

超时时间:T_IWDG = T_LSI * PR分频系数 * (RL + 1)

其中:T_LSI = 1 / F_LSI

WWDG框图

窗口看门狗使用PCLK1也就是APB1的时钟,默认为36MHz,经过预分频器分频后驱动计数器递减计数。T6 - T0为计数位,T6为溢出标志位,T6 = 0时表示计数器溢出。当设置CNT初值为111 1111时,如果把T6看作计数器的一部分,计数器在100 0000 = 0x40溢出;如果把T6看作标志位,计数器在00 0000 = 0x00溢出

WDGA时窗口看门狗使能位,WDGA = 1启用窗口看门狗。T6 = 0时,可以产生复位信号。

W[6:0]存放的是最早界限的计数值,写入后保持不变。每次喂狗(写入WWDG_CR)时,比较器比较W[6:0]与当前计数值T[6:0],如果T[6:0] > W[6:0]说明喂狗时间太早(注意计数器递减),比较器输出1,产生复位信号。

WWDG工作特性

递减计数器T[6:0]的值小于0x40时,WWDG产生复位

递减计数器T[6:0]在窗口W[6:0]外被重新装载时,WWDG产生复位

递减计数器T[6:0]等于0x40时可以产生早期唤醒中断(EWI),用于重装载计数器以避免WWDG复位

定期写入WWDG_CR寄存器(喂狗)以避免WWDG复位

超时时间:T_WWDG = T_PCLK1 * 4096 * WDGTB预分频系数 * (T[5:0] + 1)

窗口时间:T_WIN = T_PCLK1 * 4096 * WDGTB预分频系数 * (T[5:0] - W[5:0])

其中:T_PCLK1 = 1 / F_PCLK1

乘以4096是因为在进入WDGTB之前还经过了分频,分频系数为4096

WDGTB预分频系数 = 2的WDGTP次方

IWDG和WWDG对比

独立看门狗

按键用于阻塞喂狗

独立看门狗配置流程:开启LSI时钟(开启看门狗后系统自动开启,无需手动操作) -> 解除预分频器和重装载寄存器写保护 -> 向预分频器和重装载寄存器写入 -> 向键寄存器写入0xCCCC启动看门狗 -> 主循环中喂狗

F_LSI = 40kHz,T_LSI = 0.025ms

#include"stm32f10x.h"// Device header#include"OLED_Software.h"#include"Delay.h"#include"Button.h"intmain(void){OLED_Init();Button_Init();OLED_ShowString(1,1,"IWDG TEST");if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST)==SET){// 独立看门狗引起的复位OLED_ShowString(2,1,"IWDGRST");Delay_ms(500);OLED_ShowString(2,1," ");Delay_ms(100);RCC_ClearFlag();}else{OLED_ShowString(3,1,"RST");Delay_ms(500);OLED_ShowString(3,1," ");Delay_ms(100);}// 解除预分频器和重装寄存器写保护IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);// 向预分频器和重装寄存器写入,T_LSI = 0.025ms,设置超时时间为1000msIWDG_SetPrescaler(IWDG_Prescaler_16);IWDG_SetReload(2499);// 先喂一次狗,确保重装寄存器中的值为2499IWDG_ReloadCounter();// 启动看门狗IWDG_Enable();while(1){Button_Read(Pin_11);IWDG_ReloadCounter();OLED_ShowString(4,1,"FEED");Delay_ms(200);OLED_ShowString(4,1," ");Delay_ms(600);}}

窗口看门狗

窗口看门狗初始化流程:开启时钟(开启APB1时钟) -> 配置预分频器和配置寄存器 -> 使能WWDG并写入控制寄存器 -> 主循环喂狗

#include"stm32f10x.h"// Device header#include"OLED_Software.h"#include"Delay.h"#include"Button.h"intmain(void){OLED_Init();Button_Init();OLED_ShowString(1,1,"WWDG TEST");if(RCC_GetFlagStatus(RCC_FLAG_WWDGRST)==SET){// 窗口看门狗引起的复位OLED_ShowString(2,1,"WWDGRST");Delay_ms(500);OLED_ShowString(2,1," ");Delay_ms(100);RCC_ClearFlag();}else{OLED_ShowString(3,1,"RST");Delay_ms(500);OLED_ShowString(3,1," ");Delay_ms(100);}// 开启时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE);// 设置预分频和窗口值WWDG_SetPrescaler(WWDG_Prescaler_8);// 分频系数8,分频系数55 -> 超时时间50msWWDG_SetWindowValue(21|0x40);// 窗口值21 -> 30ms以后才可喂狗// 使能WWDG并写入控制寄存器WWDG_Enable(54|0x40);while(1){Button_Read(Pin_11);OLED_ShowString(4,1,"FEED");Delay_ms(20);OLED_ShowString(4,1," ");Delay_ms(20);// 喂狗,放在下面避免喂狗过早WWDG_SetCounter(54|0x40);}}
http://www.jsqmd.com/news/1003213/

相关文章:

  • FTP存储容量监控容量规划全流程方案-001篇
  • 2026年比较好的车灯透镜升级/无锡LED 透镜大灯/无锡双光透镜改装稳定供货厂家推荐 - 品牌宣传支持者
  • 2026年比较好的东莞记账报税代办/东莞个体户核定征收代办/东莞跨境电商税务代办优选企业推荐 - 行业平台推荐
  • 基于PLC的自动物料分拣机器人31(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_可以扫码
  • 告别eval_pr_curve.py!MMdetection 3.X版本PR曲线绘制保姆级教程(附完整配置文件修改)
  • 低查重AI教材编写神器,一键生成专业教材,开启写作新体验!
  • 2026年硫酸亚铁行业格局与企业实力纵览 - 品牌发掘
  • 2026年质量好的无锡透镜/无锡海拉 LED 透镜/LED 透镜大灯主流厂家对比评测 - 行业平台推荐
  • 想听书,下载哪个软件比较好?2026年听书APP推荐指南
  • Spring 5.2.6 全模块源码包:含Javadoc、Kotlin文档、参考手册与XSD配置文件
  • 新手避坑指南:用Arduino UNO和TB6600驱动42步进电机,从接线到调试的全流程记录
  • MonkeyCode 开源治理:如何管理一个50+贡献者的社区
  • 假设检验实战指南:从p值误解到业务决策落地
  • 计算机毕业设计之django基于Python Web对高校学生宿舍管理的开发与设计
  • 2026年CMA第三方检验检测报价表全解析:甲醛、水质、土壤检测价格与服务对比 - 优质品牌商家
  • 低查重AI教材编写攻略:利用AI工具,轻松完成教材创作!
  • 手把手教你用SpringCloudAlibaba快速搭建一个订单-库存微服务Demo(含完整代码)
  • Blender 3MF插件:从3D设计到3D打印的终极桥梁
  • 2026年碳素管/碳素螺旋管供应厂家市场测评报告 - 品牌发掘
  • 2026年天津家电维修实力对比 5家各具特色靠谱推荐 - 本地品牌推荐
  • 淮南择校必看!本地家长认可的优质热门公办职业院校推荐,中专学校/新能源汽车专业学校/技工学校/中职学校,职业学校推荐 - 品牌推荐师
  • 2026年山特UPS电源供应商综合能力评估:行业头部企业横向对比与案例解析 - 优质品牌商家
  • 2026年广州走廊地毯采购指南:品牌对比与行业趋势分析 - 优质品牌商家
  • 2026年质量好的东莞企业注册代办/东莞无地址注册公司代办/东莞公司注册代办/东莞营业执照代办客户信赖公司 - 行业平台推荐
  • 离线动作VLA模型---OpenVLA算法原理详解
  • MobaXterm 隐藏玩法:用自定义快捷键打造你的专属终端武器库
  • 2026年不锈钢公交站台与智能垃圾房品牌选型指南:技术工艺、交付能力与区域服务深度解析 - 优质品牌商家
  • 外贸跟单/跨境电商卖家必看:如何用AQL 2.5标准跟工厂谈验货,避免货不对板?
  • AI 不可变基础设施与 GitOps 驱动的模型交付:OCI 制品、声明式推理与可复现训练环境深度解析
  • 2026年五恒系统公司怎么选?深度对比四家主流服务商的差异化优势与真实案例 - 优质品牌商家