【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 是自动重装值

相关推荐
智商偏低4 小时前
单片机之helloworld
单片机·嵌入式硬件
青牛科技-Allen6 小时前
GC3910S:一款高性能双通道直流电机驱动芯片
stm32·单片机·嵌入式硬件·机器人·医疗器械·水泵、
森焱森7 小时前
无人机三轴稳定控制(2)____根据目标俯仰角,实现俯仰稳定化控制,计算出升降舵输出
c语言·单片机·算法·架构·无人机
白鱼不小白8 小时前
stm32 USART串口协议与外设(程序)——江协教程踩坑经验分享
stm32·单片机·嵌入式硬件
S,D8 小时前
MCU引脚的漏电流、灌电流、拉电流区别是什么
驱动开发·stm32·单片机·嵌入式硬件·mcu·物联网·硬件工程
芯岭技术11 小时前
PY32F002A单片机 低成本控制器解决方案,提供多种封装
单片机·嵌入式硬件
youmdt12 小时前
Arduino IDE ESP8266连接0.96寸SSD1306 IIC单色屏显示北京时间
单片机·嵌入式硬件
嘿·嘘12 小时前
第七章 STM32内部FLASH读写
stm32·单片机·嵌入式硬件
Meraki.Zhang12 小时前
【STM32实践篇】:I2C驱动编写
stm32·单片机·iic·驱动·i2c
几个几个n14 小时前
STM32-第二节-GPIO输入(按键,传感器)
单片机·嵌入式硬件