如何计算STM32定时器、独立看门狗和窗口看门狗

发布者:Huixin8888最新更新时间:2025-01-06 来源: jianshu关键字:STM32  定时器  独立看门狗  窗口看门狗 手机看文章 扫描二维码
随时随地手机看文章

之前分享了STM32 GPIO的原理、特性、选型和配置、如何计算RTC时钟异步预分频和同步预分频,这次简要阐述STM32L011微控制器定时器的参数配置(其他型号大同小异,本文侧重讲解配置,至于各类定时器的特点后续再述),STM32定时器种类繁多有通用定时器、基本定时器、独立看门狗定时器、窗口看门狗定时器等。

1、基本、通用类型定时器

STM32基本、通用类型可编程定时器主要由一个 16 位及其相关的自动重载寄存器组成,在配置基本、通用类型的定时器时有三种关键寄存器:计数器寄存器 、预分频器寄存器和自动重载寄存器,具体说明如下所示:

计数器寄存器:有递增计数、递减计数或同时递增和递减计数三类,计数器的时钟可通过预分频器进行分频;

预分频器寄存器:可对计数器时钟频率进行分频,分频系数介于 1 和 65536 之间(这里指STM32L011);

自动重载寄存器:当计数器达到上溢值(或者在递减计数时达到下溢值)时将发送更新事件,计数器寄存器将装载重新计数。

假设计数器寄存器数值为0xFC,采用2预分频,当使能计数器后,定时器时钟开始按照定时效果运行(定时由计数器寄存器和预分频器寄存器共同决定),计数器从0x00计数到0xFC后会产生中断,并更新时间开始新一轮的计数,从0x00计数到0xFC时间的长短由预分频控制寄存器决定,时序图如下所示:

数器寄存器数值为0xFC(十进制:252),采用2预分频的定时周期计算如下(假设使用32MHZ的时钟频率):

由于1HZ是1秒/次的频率,63492HZ就是,计数器从0x00计数到0xFC,定时周期为63492秒,使用STM32CuBeMX配置如下所示:

假设计数器寄存器数值为0xFC,采用4预分频, 时序图如下所示:

数器寄存器数值为0xFC(十进制:252),采用2预分频的定时周期计算如下(假设使用32MHZ的时钟频率):

计数器从0x00计数到0xFC,定时周期为31746秒,使用STM32CuBeMX配置如下所示:

2、独立看门狗定时器

独立看门狗定时器激活后,计数器开始从复位值 0xFFF (可通过窗口寄存器修改)递减计数,当计数器计数到终值 (0x000) 时会产生一个复位信号,在递减的过程中将键值 0x0000 AAAA 写到密钥寄存器中,计数器将会重载,从而避免产生看门狗复位,独立看门狗框图如下所示:

 独立看门狗定时器有三种关键寄存器:窗口寄存器、预分频器寄存器和重载寄存器,具体说明如下所示:

窗口寄存器:默认值为 0x0000 0FFF(十进制:4095),当计数器值大于窗口寄存器中存储的值时,如果执行重载操作,则会产生复位;

预分频器寄存器:可对计数器时钟频率进行分频,分频系数最大为256(这里指STM32L011);

重载寄存器:当计数器计数到终值 (0x000) 时会产生一个复位信号,计数器寄存器将装载重新计数。

独立看门狗定时器时钟由LSI振荡器提供,STM32L011中LSI频率为37KHZ,看门狗定义周期时间的方式和基本、通用类型可编程定时器完全一致,假设定义1秒周期的看门狗定时器,超过1秒不喂狗就进行系统复位,计算方式如下所示:

 当然由于LSI振荡器精度有限,在运行过程中会存在一定误差,使用STM32CuBeMX配置如下所示:

3、窗口看门狗定时器 

窗口看门狗定时器是可编程的自由运行递减计数器,窗口看门狗激活后当递减计数器值小于 0x40(从 0x40 递减到 0x3F) 时复位,在窗口阈值之外重载递减计数器时也会复位,只有在0x40~窗口阈值之间喂狗系统才可以正常运行,窗口定时器时序图如下所示:

时序图解析如下所示:

T[6:0]:7 位计数器,用来存储看门狗计数器的值,它每隔PCLK 个周期递减一次,当它从 0x40 递减到 0x3F(T6 清零)时会产生复位;

WDGTB[1:0] :定时器时基 ,有4种方式修改预分频器的时基:00:CK 计数器时钟 (PCLK div 4096) 分频器 1、01:CK 计数器时钟 (PCLK div 4096) 分频器 2、10:CK 计数器时钟 (PCLK div 4096) 分频器 4和11:CK 计数器时钟 (PCLK div 4096) 分频器 8;

W[6:0]:7 位窗口值,用于与递减计数器进行比较的窗口值,超过窗口阈值系统会复位;

当递减计数器值从 0x40 递减到 0x3F时系统会复位;

0x40~W[6:0]之间可以刷新喂狗,确保系统正常运行。

窗口定时器超时值的计算公式如下:

STM32L011中窗口看门狗定时器基于APB1频率,假设APB1 频率等于 32 MHZ,定义65毫秒周期的窗口看门狗定时器,计算方式如下所示:

 使用STM32CuBeMX配置如下所示:

关键字:STM32  定时器  独立看门狗  窗口看门狗 引用地址:如何计算STM32定时器、独立看门狗和窗口看门狗

上一篇:stm32 USART串口应用不知道你会了多少
下一篇:STM32存储布局

推荐阅读最新更新时间:2026-03-21 10:46

如何计算STM32定时器独立看门狗窗口看门狗
之前分享了STM32 GPIO的原理、特性、选型和配置、如何计算RTC时钟异步预分频和同步预分频,这次简要阐述STM32L011微控制器定时器的参数配置(其他型号大同小异,本文侧重讲解配置,至于各类定时器的特点后续再述),STM32定时器种类繁多有通用定时器、基本定时器、独立看门狗定时器、窗口看门狗定时器等。 1、基本、通用类型定时器 STM32基本、通用类型可编程定时器主要由一个 16 位及其相关的自动重载寄存器组成,在配置基本、通用类型的定时器时有三种关键寄存器:计数器寄存器 、预分频器寄存器和自动重载寄存器,具体说明如下所示: 计数器寄存器:有递增计数、递减计数或同时递增和递减计数三类,计数器的时钟可通过预分频器进行分频
[单片机]
STM32中的独立看门狗窗口看门狗是什么
一、前言 在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗发展到今天基本上分为两大类:独立看门狗和窗口看门狗。 独立看门狗 :使用的是外部时钟,即使主频不工作了,看门狗也能正常工作。只要在到达喂狗时间的上限前喂狗即表示程序是正常的,这点和窗口看门狗是有区别的。另外独立看门狗是独立于整个系统之外的,这也是独立看门狗名字的由来,他有自己独立的时钟,不受整个系统的影响,所以独立看门狗主要用来监控硬件上的错误。 窗口看门狗 :使用芯片内部时钟。喂狗的时间既有上限又有下限,即喂狗太早或者太晚都不行,比如我要求你在0.8s到0.9s内
[单片机]
<font color='red'>STM32</font>中的<font color='red'>独立</font><font color='red'>看门狗</font>和<font color='red'>窗口</font><font color='red'>看门狗</font>是什么
STM32单片机看门狗独立看门狗窗口看门狗有什么区别
早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。 为了满足更多使用场景,现在很多MCU都集成了两个看门狗:独立看门狗与窗口看门狗。 拿现在大家熟悉的STM32来说,都集成了独立看门狗和窗口看门狗,下面就展开来讲讲这个两个看门狗以及它们的区别。 独立看门狗 独立看门狗,顾名思义,就是独立的一个看门狗,由其专用低速时钟 (LSI) 驱动,因此,即便在主时钟发生故障时仍然保持工作状态。 IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 独立看门狗特性: 自由运行递减计数器 时钟由独立 RC
[单片机]
STM32F4学习笔记9——独立看门狗窗口看门狗
STM32F4xx内置俩个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备可用来检测和解决由软件错误引起的故障;当计数器大道给定的超时值触发一个中断(触发中断仅适用于窗口看门狗)或产生系统复位。 地理看门狗IWDG有用们的低速时钟LSI驱动,及时主时钟发生故障他也任然有效。窗口看门狗由APB1是中国分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 IWDG最时候用于哪些需要一个看门狗在主程序之外能够独立工作并且对时间精度要求较低的场合,WWDG适合用于哪些要求看门狗在精确计算计时窗口起作用的应用程序。 IWDG主要特性与功能 ·自由运行的递减计数器 ·时钟由独立R
[单片机]
STM32F4学习笔记9——<font color='red'>独立</font><font color='red'>看门狗</font>与<font color='red'>窗口</font><font color='red'>看门狗</font>
STM32F1_WDG看门狗独立+窗口
前言 今天总结“STM32F103 WDG看门狗”,STM32F1有两个看门狗,IWDG独立看门狗和WWDG窗口看门狗,今天将两个看门狗一并总结了。 总结一下二者的区别: 1)、IWDG使用内部低速时钟LSI,WWDG使用系统时钟APB1ENR 2)、IWDG没有中断,WWDG有中断 3)、IWDG是12位递减的。WWDG是7位递减的 4)、IWDG只有下限,WWDG有下限和上限 5)、IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。 看门狗在长期工作的产品中用到比较多,作用很简单,防止死机。看门狗的功能也
[单片机]
STM32F1_WDG<font color='red'>看门狗</font>(<font color='red'>独立</font>+<font color='red'>窗口</font>)
独立看门狗窗口看门狗的区别
独立看门狗(IWDG--Independent watchdog):使用外部的的时钟,芯片的主频不工作了也能正常工作。只有喂狗时间的上限,没有下限。即如果上限是1s,只需在1s内喂狗看门狗就正常,两次喂狗时间间隔超过1s,则看门狗就会将系统复位。 窗口看门狗(WWDG--Window watchdog):使用芯片内部时钟。喂狗的时间既有上限又有下限,即喂狗太早或者太晚都不行。 独立看门狗Iwdg——独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器。主要用于监视硬件错误。 窗口看门狗wwdg——系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去作用了。主要用于监视软件错误 1)独
[单片机]
STM32F0xx_看门狗独立+窗口)配置详细过程
Ⅰ、概述 对于看门狗,我觉得做单片机或者嵌入式开发的人员来说并不陌生,今天总结STM32F0看门狗的功能,F0的看门狗有两种:独立和窗口看门狗。 今天提供两种看门狗的软件工程实例,供大家下载。 两种看门狗各有各的特点,应用在不同的场合,下面将分别简单总结一下独立和窗口看门狗的功能。 Ⅱ、下载 文章提供的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘,请放心下载测试,如有问题请检查一下你的板子是否有问题。 ST标准外设库和参考手册、数据手册等都可以在 ST官网 下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考
[单片机]
STM32F0xx_<font color='red'>看门狗</font>(<font color='red'>独立</font>+<font color='red'>窗口</font>)配置详细过程
stm32 窗口看门狗 WWDG
窗口看门狗WWDG其实和独立看门狗类似,它是一个7位递减计数器不断的往下递减计数,当减到一个固定值0x40时还不喂狗的话,产生一个MCU复位,这个值叫窗口的下限,是固定的值,不能改变 窗口看门狗(WWDG)的时钟来自PCLK1,即挂接在APB1总线上,APB1时钟最大为36M 窗口值由配置寄存器WWDG_CFR的 位设置,所以最大值0x7F 当递减计数器递减到0x40的时候,还不会马上产生复位,如果使能了提前唤醒中断,则产生提前唤醒中断,提醒喂狗,随后将复位 WWDG配置步骤 1.使能WWDG时钟 2.设置WWDG窗口值 3.设置WWDG预分频因子 4.初始化NVIC外设,设置WWDG中断优先级 5.初始化计数
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved