TIM 定时中断
1. 简介
TIM (Timer) 定时器中断
- 定时器可以对输入的时钟进行计数,并在数值达到设定值的时候触发中断。
- 16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时。
- 不仅具备基础的定时中断功能,还包括内外时钟源选择,输入捕获、输出比较、编码器接口、主从触发等多种功能。
- 根据复杂程度和应用场景分为了:高级定时器、通用定时器、基本定时器三种类型。
TIM 定时器在 STM32 中有三种类型
类型 | 编号 | 总线 | 功能 |
---|---|---|---|
高级定时器 | TIM1、TIM8 | APB2 | 拥有通用定时器的全部功能,并额外具有重复计数器、死区生成、互补输出、刹车输入等功能 |
通用定时器 | TIM2、TIM3、TIM4、TIM5 | APB1 | 拥有基本定时器全部功能,并额外具有内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等功能 |
基本定时器 | TIM6、TIM7 | APB1 | 拥有定时中断、主从触发DAC等功能 |
2. 时基单元
TIM 定时器的基本组成就是时基单元。
时基单元由一下三部分组成:
- PSC (预分频寄存器):可以对输入的时钟信号进行预分频,用于为 CNT 提供脉冲信号进行计数;PSC 置 1 则可实现 2 分频,置 2 可以实现 3 分频,依此类推。
- CNT (计数器):对于由 PSC 分频后输入的信号,每经过一个下降沿,CNT 就会 +1;其中最大上限为 \(2^{16}\) 。
- ARR (自动重装寄存器):通过比较 ARR 和 CNT 的差距,如果 ARR 的值等于 CNT 则输出更新中断或者更新事件。
时基单元的时钟可由不同的设备提供:
- 内部时钟模式:此模式下,时钟信号由内部RCC总线提供时钟。
- 外部时钟模式2\外部时钟模式1:ETR 外部时钟
- 外部时钟模式1:ITRx 其它定时器: 可以通过配置时基单元的更新事件映射到下一个计数器的时钟输入,从而实现定时器的级联,进而扩大定时器的最大计数时间。
- 编码器模式\外部时钟模式1:TIx 捕获通道