基本定时器(TIM6 TIM7)
通用计时器(TIM2~TIM5 TIM9~TIM14)
高级控制定时器(TIM1 TIM8)
定时器之间彼此独立,不共享任何资源。
一、基本定时器
1. 组成
(1)时钟源
时钟源频率=APB1总线时钟频率× 倍频器系数
APB1预分频器系数=1->倍频器系数=1
APB1预分频器系数≥2->倍频器系数=2
APB1总线频率42MHz
(2)控制器
控制定时器复位、使能、计数、触发DAC转换。
DAC:数模转换器
将输入的数字量转换为与数字量成比例的模拟量
(3)时基单元
有效数字16位,范围0~65535
(1)计数器寄存器 TIMx_CNT
递增计数器
使能计数器:CEN位置1
每来一个脉冲CNT值加1
(2)自动重载寄存器 TIMx_ARR
(3)预分频数寄存器 TIMx_PSC
可以在运行过程中修改数值,下一个更新事件中使用新值
输入CK_PSC来源内部时钟CK_INT
输出CK_CNT为计数器实际计数时钟
实际计数时钟计算公式:
影子寄存器
不可直接访问。
预分频器寄存器只缓存数据,数值放到影子寄存器后才起作用。在ARR寄存器中
APRE=0 新写入ARR寄存器的值马上进入影子寄存器
APRE=1 新写入ARR寄存器的值更新后进入影子寄存器
更新事件
1. 软件产生:TIMx_EGR寄存器的UG位置1,更新事件后硬件将UG位清零。
2. 硬件产生:计数器的值等于自动装载寄存器影子寄存器的值,CNT值清零同时更新事件。
2. 寄存器
(1)控制寄存器 TIMx_CR1
位0 CEN 计数器使能
位7 ARPE ARR寄存器是否缓冲
(2)状态寄存器 TIMx_SR
位0 UIF 更新中断标志位,硬件置1,软件清零
——0:未发生更新
——1:进入中断服务函数
(3)计数器寄存器 TIMx_CNT
(4)预分频寄存器 TIMx_PSC
(5)自动重载寄存器 TIMx_ARR
二、通用计时器
定时器类型 | 定时器 | 计数器位数 | 计数模式 | 预分频系数 | 产生DMA请求 | 捕获/比较通道 | 互补输出 | 接口最大时钟(MHz) | 定时器最大时钟(MHz) |
通用计时器 | TIM2 TIM5 | 32 | 递增 递减 中央对齐 | 1~65536 | √ | 0 | 无 | 42 | 84 |
TIM3 TIM4 | 16 | 递增 递减中央对齐 | 1~65526 | √ | 4 | 42 | 84 | ||
TIM9 | 16 | 递增 | 1~65536 | × | 2 | 84 | 168 | ||
TIM10 TIM11 | 16 | 递增 | 1~65536 | × | 1 | 84 | 168 | ||
TIM12 | 16 | 递增 | 1~65536 | × | 2 | 42 | 84 | ||
TIM13 TIM14 | 16 | 递增 | 1~65536 | × | 1 | 42 | 84 |
1. 组成
(1)时钟源
四选一:
内部时钟(TIMx_INT)
TIM2~TIM5、TIM12~TIM14挂载在APB1总线上
TIM9~TIM11挂载在APB2总线上 APB2时钟频率为84MHz
外部时钟模式1:IO->TIMx_CH1/TIMx_CH2
外部时钟模式2:IO->TIMx_ETR
内部触发输入:使用一个定时器作为另一定时器的预分频器
(2)控制器
从模式控制器(计数器复位、启动、递增递减、计数)、编码器接口、触发控制器
(3)时基单元
计数器寄存器(计数模式:递增递减中心对齐)、预分频寄存器、自动重载寄存器
(4)输入捕获
TIMx_CH1~TIMx_CH4是定时器的四个通道,IO端口通过复用与通道连接。输入捕获部分可以捕获信号边沿。
(5)输出比较
2. 寄存器
(1)控制寄存器1 TIMx_CR1
位7 ARPE
位6:5 CMS 中心对齐模式选择
位4 DIR 方向
——0:递增
——1:递减
位0 CEN
(2)从模式控制寄存器 TIMx_SMCR
位2:0 SMS 从模式选择
(3)DMA/中断使能寄存器 TIMx_DIER
位0 UIE 更新中断使能
(4)捕获/比较模式寄存器1 TIMx_CCMR1
(5)捕获/比较使能寄存器 TIMx_CCER
(6)捕获/比较寄存器1 TIMx_CCR1
位15:0 CCR1[15:0] 捕获/比较值
三、高级控制寄存器
1. 组成
(1)重复计数器
定时器上溢或下溢一次重复计数器值减1,值为0后再次上溢或下溢产生更新时间。
具有影子寄存器。
(2)输出比较
多了带死区控制的互补功能,可以不使用。
(3)断路功能
也称刹车。断路源可以是刹车输入引脚,也可以是时钟失败时间。
2. 寄存器
(1)控制寄存器 TIMx_CR1
(2)捕获/比较模式寄存器1/2 TIMx_CCMR1/2
(3)捕获/比较使能寄存器 TIMx_CCER
(4)事件产生寄存器 TIMx_EGR 产生软件更新器事件
位0:控制位
(5)重复计数器寄存器 TIMx_RCR
(6)断路和死区寄存器 TIMx_BDTR
位15 MOE 主输出使能