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

相关推荐
Aaron_dw20 小时前
PHY Eye Monitor 全栈技术说明书
嵌入式硬件
NQBJT1 天前
嵌入式从零开始(第十二篇):调试与工具链 —— 从 IDE 到逻辑分析仪
ide·stm32·单片机·嵌入式硬件·c#
广州灵眸科技有限公司1 天前
瑞芯微(EASY EAI)RV1126B 网络摄像头方案
开发语言·网络·科技·嵌入式硬件·物联网
豆包公子1 天前
程序流监控 —— AUTOSAR CP 功能安全在裸机 MCU 上的实现:实践篇
单片机·嵌入式硬件·学习
cici158741 天前
C# 五子棋小游戏源码(人机对战)
开发语言·单片机·c#
iCxhust1 天前
51单片机定时器PWM发生
stm32·单片机·51单片机
LCG元1 天前
STM32实战:基于STM32F103的智能宠物喂食器(定时+定量)
stm32·嵌入式硬件·宠物
水云桐程序员1 天前
用C语言写LED灯嵌入式系统案例|STM32 LED控制与按键输入系统
c语言·stm32·单片机
电子工程师成长日记-C511 天前
51单片机电子打铃系统
单片机·嵌入式硬件·51单片机
iCxhust1 天前
Keil µVision 调试指南---UART#1 模拟/调试窗口 完全使用教程
stm32·单片机·嵌入式硬件