TIM定时器
视频选集(13/50)[6-1] TIM定时中断
1. TIM简介
- 定时触发中断:定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断
- 16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时
- 不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能
- 根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型
2. 定时器类型
STM32F103C8T6定时器资源:TIM1、TIM2、TIM3、TIM4
注.定时器功能向下兼容
| 类型 | 编号 | 总线 | 功能 |
|---|---|---|---|
| 高级定时器 | TIM1、TIM8 | APB2 | 拥有通用定时器全部功能,并额外具有重复计数器、死区生成、互补输出、刹车输入等功能 |
| 通用定时器 | TIM2、TIM3、TIM4、TIM5 | APB1 | 拥有基本定时器全部功能,并额外具有内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等功能 |
| 基本定时器 | TIM6、TIM7 | APB1 | 拥有定时中断、主模式触发DAC的功能 |
3. 基本定时器架构


注.基本定时器只能选择内部时钟CK_INT(来源为RCC_TIMxCLK,其频率值一般为系统的主频72MHz)
-
实际分频系数=预分频器的值+1
如,预分频器内值为2,实际分频系数为3,输出频率=输入频率/3
-
预分频器为16位,存储值最大为65535,即实际分频系数最大为65536

-
计数器:对预分频后的计数时钟进行计数,每发生一次上升沿,计数值加一。16位,最大计数65535,超过最大值则重新从0开始计数
-
自动重装寄存器:16位。存储写入的计数目标。
-
当计数器中的计数值等于自动重装寄存器中的目标值时,计时时间到,自动重装寄存器产生一个中断信号,将计数器清零。计数器自动开始下一次的计数计时
- 该中断为“更新中断”,通往NVIC,当NVIC中的定时器通道配置好时,“更新中断”能够得到CPU的响应;
- 对应事件为“更新事件”,“更新事件”不会触发中断,但可以触发内部其他电路的工作

4. 通用定时器架构
- 计数模式;向上计数模式,向下计数模式,中央对齐模式
- ETR:外部时钟模式2
- TRGI:外部时钟模式1。其输入可以是ETR引脚、其他定时器、CH1引脚的边沿、CH1引脚和CH2引脚


注.电路图中某模块下的阴影意味着该寄存器有一个相应的影子寄存器。影子寄存器的目的是:让存储值的变化和更新事件同步发生,防止计数周期内的更改导致错误

5. 预分频器时序

-
计数器计数频率:CK_CNT = CK_PSC / (PSC + 1)
-
预分频寄存器实际上有两个:一个进行读写,另一个(影子寄存器)起实际作用。
在某时刻,预分频值由0改为1,时钟的分频系数并不会立刻改变。等到本计数周期结束、更新事件产生后,预分频寄存器的值被传送到缓冲寄存器中,更改生效
6. 计数器时序
-
更新中断标志位UIF:置1后申请中断。中断响应后,需要在中断程序中手动清零
-
计数器溢出频率:CK_CNT_OV = CK_CNT / (ARR + 1) = CK_PSC / (PSC + 1) / (ARR + 1)
注.ARR为重装值(溢出时间/计数值)

6.1 计数器无预装时序

6.2 计数器有预装时序

7. RCC时钟树
:用于产生和配置时钟、将配置好的时钟发送到各个外设的系统
- 两个8MHz的高速晶振用来提供系统时钟。外部的石英振荡器比内部的RC振荡器更加稳定






本文来自博客园,作者:LI,Yi-han,转载请注明原文链接:https://www.cnblogs.com/LiYi-han/p/19029575

浙公网安备 33010602011771号