stm32 TIM
一、TIM简介
- TIM(Timer)定时器
- 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断。
- 16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时
- 定时器不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能
- 根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型
定时器最基本的功能就是定时触发中断。
定时器就是一个计数器,当这个计数器的输入是一个准确可靠的基准时钟的时候。那它在对这个基准时钟进行计数的过程实际上就是计时的过程。在STM32中,定时器的基准时钟一般都是主频72MHz,如果对72MHz计72个数,是1MHz也就是1us 的时间;如果计72000个数,是1KHz也就是1ms的时间。
- 计时器就是用来执行计数定时器的一个寄存器,每来一个时钟,计数器加1。
- 预分频器可以对计数器的时钟进行分配,让这个计数更加灵活。
- 自动重装寄存器就是计数的目标值,可以设置要计多少个时钟申请中断。
这三个寄存器构成了定时器最核心的部分,这一块电路称为时基单元。时基单元里的计数器、预分频器、自动重装寄存器都是16位的,2的16次方是65536,也就是如果预分频器设置最大,自动重装寄存器也设置最大,那定时器的最大定时时间就是59.65s,接近一分钟。STM32的定时器还支持级联的模式,也就是一个定时器的输出,当作另一个定时器的输入。这样加一起,最大定时时间就是59.65s×65536×65536,这个时间大概是八千多年。
二、STM32的三种定时器
不同定时器连接的总线也不同,高级定时器连接的是性能更高的APB2总线,通用定时器和基本定时器连接的是APB1总线,在RCC开启时钟时要注意。
基本定时器功能最少,只有基本的定时中断功能和一个主模式触发DAC的功能,所以基本定时器还可以和DAC联合使用。
通用定时器拥有基本定时器的全部功能,也就是定时中断功能和主模式触发DAC的功能。并额外具有内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等功能。
高级定时器最为复杂,拥有通用定时器的全部功能,并额外具有重复计数器、死区生成、互补输出、刹车输入等功能。这些功能主要是为了三相无刷电机的驱动设计的。