定时器简介
功能简介
定时器分类
按核内核外分:
- 核内定时器:systick
- 外设定时器:常规定时器(基本、通用和高级定时器)和特定应用定时器(低功耗定时器、看门狗、实时时钟)
按计数器位宽分:
- 16位定时器:通用定时器(GPTIM)、高级定时器(ATIM)
- 24位定时器:systick
- 32位定时器:STM32的TIM2和TIM5
基本定时器、通用定时器、高级定时器区别
基本定时器结构框图
基本定时器几乎没有任何对外输入/输出,常用做时基,实现最基本的定时计数功能。
主要特性:
- 32位向上计数自动重载计数器;
- 32位可编程预分频器,支持实时调整时钟分频;
- ADC定时触发功能;
- 计数器溢出时产生中断;
最基本的三个寄存器:
- 计数器(BSTIM_CNT)
- 预分频寄存器(BSTIM_PSC)
- 自动重装载寄存器(BSTIM_ARR)
BSTIM_CNT: BSTIM_CNT由BSTIM_PSC寄存器产生的分频时钟驱动,只有在计数器使能位置位时,CNT以向上计数模式开始计数。当CNT=ARR时,本轮计数结束,发生更新事件,产生中断。
BSTIM_ARR: ARR包含预装载功能,软件读写ARR可以直接起效。通过自动重装载预装载使能寄存器(ARPE)控制。ARR具有一个影子寄存器,软件读写ARR都是访问其影子寄存器,当更新事件发生时,会将缓存寄存器内的数据更新到ARR中。
BSTIM_PSC: PSC是一个同步预分频器,可以对apb_clk进行0~0xFFFF_FFFF分频。同样PSC也具有一个影子寄存器,改写PSC只是改写其影子寄存器,只有当新的更新事件到来时,才会从影子寄存器更新PSC。
通用定时器结构框图
主要特性:
- 16位向上、向下、中心计数自动重载计数器
- 16位可编程预分频器,支持实时调整计数时钟分频
- 具有灵活的时钟源选择
- 4个独立通道可用于输入捕获、输出比较、PWM、单脉冲输出
高级定时器结构框图
主要特性:
除了具备通用定时器的所有特性外,还具有以下特性:
- 可编程死区插入的互补输出;
- 具备独立工作时钟,最高工作频率可达120MHz
- 重复计数器,支持定时器多个循环后更新状态
- 两路刹车引脚输入、比较器刹车、SVD刹车
- 支持增量正交编码器和霍尔传感器