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

栏目: IT技术 · 发布时间: 6年前

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

目录

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2、独立看门狗定时器

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

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

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

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

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

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

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

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

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

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

3、窗口看门狗定时器

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

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

时序图解析如下所示:

  • T[6:0]:7 位计数器,用来存储看门狗计数器的值,它每隔 如何计算STM32定时器、独立看门狗和窗口看门狗 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]之间可以刷新喂狗,确保系统正常运行。

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

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

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

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

使用STM32CuBeMX配置如下所示:

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

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


以上所述就是小编给大家介绍的《如何计算STM32定时器、独立看门狗和窗口看门狗》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

构建之法

构建之法

邹欣 / 人民邮电出版社 / 2014-9 / 49.00元

内容简介: 软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。作者邹欣有长达20年的一线软件开发经验,他利用业余时间在数所高校进行了长达6年的软件工程教学实践,总结出了在16周的时间内让 同学们通过 “做中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划,并得到高校师生的积极反馈......一起来看看 《构建之法》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具