TIM(Timer)定时器
-
定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断
-
STM32的计数器包含:16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时
-
不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口,主从触发模式等多种功能根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型
定时器类型
高级定时器:TIME1 、TIME8
通用定时器: TIME2-TIME5,TIM9-TIM14
基本定时器: TIME6 、 TIME7
控制器上所有定时器都是彼此独立的,不共享任何资源。就功能上来说通用定时器包含所有基本定时器功能,而高级控制定时器包含通用定时器所有功能。所以高级控制定时器功能繁多,但也是最难理解的。高级定时器多出来一个互补输出。
电机死区(了解)
分辨率:提供的位数是多少,决定了ARR的最大值。
定时器的分辨率越高,时间精度或时间准确度越高。
计数器类型:递增,递减,递增/递减(双向递增)。
PSC在操作的时候会在内部进行加1操作,默认是值0,即默认情况下是1分频。
基本定时器
基本定时器(TIM6 和 TIM7)主要两个功能,第一就是基本定时功能,生成时基。第二就是 专门用于驱动数模转换器(DAC)
基本定时器(TIM6 和 TIM7)的特性包括:
● 16 位自动重载递增计数器(自动重装载值arr:计数的最大值)
● 16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于 1 和 65536 之间
● 用于触发 DAC 的同步电路
● 发生如下更新事件时会生成中断/DMA 请求:计数器上溢
DMA直接数据存储,不经过cpu
时基单元
(向下的箭头不会触发中断,但可以触发内部其他电路的工作 )
- CK_PSC是定时器时钟TIMxCLK,经APB1预分频器后分频提供,我们的芯片为42Mhz,×2为84Mhz
- 定时器时钟经过PSC 预分频器之后,即CK_CNT,用来驱动计数器计数。
- 计数器CNT 是一个16 位的计数器,可以从0加到65535,向上,向下,向上/下计数模式(基本定时器只能递增计数),最大计数值为65535(2的16次方)。当计数达到自动重装载寄存器的时候产生更新事件,并清零从头开始计数。65535是能设置的最大值。
- 自动重装载寄存器ARR 是一个16位的寄存器,这里面装着计数器能计数的最大数值。当计数到这个值的时候,如果使能了中断的话,定时器就产生溢出中断。