【STM32F1标准库】理论——定时器/计数器中断

目录

一、定时器/计数器简介

1.通用定时器

2.基本定时器

二、时基单元

三、定时器/计数器结构框图

四、程序运行途中改变分频系数后的时序

1.缓冲器

2.预装器

3.RCC时钟树

五、计时计算方法


一、定时器/计数器简介

定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断

16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时

不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能

根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型

1.通用定时器

高级定时器和通用定时器支持向上计数、向下计数和中央对齐计数三种模式,时钟源可选择内部或者外部

①使用TRGI作为输入时钟,称为"外部时钟模式1"

时钟来源可以是ETR引脚

其他定时器

CH1引脚边沿(TI1F_ED输入捕获单元)

CH1引脚(TI1FP1)和CH2引脚(TI1FP2)

通过TRGO映射以及选通ITR信号可以实现定时器级联,级联表见下

②参考引脚图使用外部时钟,将时钟源接定时器的ETR引脚称为"外部时钟模式2"

2.基本定时器

基本定时器仅支持向上计数模式,时钟源仅可选择内部

二、时基单元

PSC负责对输入时钟频率(默认72MHz)分频,写0代表1分频

CNT负责对分频后的频率进行计数

当计数到达ARR设定的值之后可以触发中断或事件,并且自动将CNT的值清零

三、定时器/计数器结构框图

四、程序运行途中改变分频系数后的时序

1.缓冲器

使用预分频缓冲器,当上一次计数结束后才装载新的分频系数,这样可以保证在完整的一次计数周期内前后计数频率是一致的

计数器计数频率:CK_CNT = CK_PSC / (PSC + 1)

计数器溢出频率:CK_CNT_OV = CK_CNT / (ARR + 1)

= CK_PSC / (PSC + 1) / (ARR + 1)

CK_PSC 是主频72MHz

PSC 是预分频系数

ARR 是自动重装值

2.预装器

预装功能作用和缓冲器类似,只有当记完这一次的数之后才会在下一次计数周期将新的计数值装入寄存器

有预装时序的结构在手册中带有阴影

3.RCC时钟树

五、计时计算方法

计数器计数频率:CK_CNT = CK_PSC / (PSC + 1)

计数器溢出频率:CK_CNT_OV = CK_CNT / (ARR + 1)

= CK_PSC / (PSC + 1) / (ARR + 1)

CK_PSC 是主频72MHz

CK_CNT是计数值

PSC 是预分频系数

ARR 是自动重装值

相关推荐
nuannuan2311a2 分钟前
4N90-ASEMI电机控制专用4N90
单片机
邹诗钰-电子信息工程33 分钟前
bmp280的压力数据采集(i2c设备驱动+设备树编写)
stm32·单片机·嵌入式硬件
Ronin-Lotus4 小时前
嵌入式硬件篇---有线串口通信问题解决
单片机·嵌入式硬件·ttl·rs232·rs485·有线串口
Ronin-Lotus5 小时前
嵌入式硬件篇---zigbee无线串口通信问题
嵌入式硬件·zigbee·无线串口
GalaxySinCos6 小时前
08 51单片机之串口通信
单片机·嵌入式硬件·51单片机
悠哉悠哉愿意6 小时前
【电赛学习笔记】MaxiCAM 项目实践——与单片机的串口通信
笔记·python·单片机·嵌入式硬件·学习·视觉检测
李某学编程8 小时前
Cortex-M内核SysTick定时器介绍
stm32·单片机
李永奉8 小时前
STM32-定时器的基本定时/计数功能实现配置教程(寄存器版)
c语言·开发语言·stm32·单片机·嵌入式硬件
糖糖单片机设计9 小时前
硬件开发_基于STM32单片机的电脑底座系统
stm32·单片机·嵌入式硬件·物联网·51单片机
IT项目分享12 小时前
ESP32入门实战:PC远程控制LED灯完整指南
单片机·嵌入式硬件·micropython·it项目网