STM32F1单片机共拥有11个定时器,其中含2个高级定时器(TIM1、TIM8)、4个通用定时器(TIM2、TIM3、TIM4、TIM5)、2个基本定时器(TIM6、TIM7)、2个看门狗定时器和1个系统嘀嗒定时器(SysTick)。本节重点讲述通用定时器和高级定时器。
TIM1—8这8个定时器都是16位的,它们的计数器类型除了基本定时器TIM6和TIM7都支持向上、向下、向上/向下这3种计数模式。
TIM1、TIM8是能够产生3对PWM互补输出的高级定时器,常用于电动机的控制。
通用定时器(TIM2、TIM3、TIM4、TIM5)具有输入捕获和输出比较功能,输入捕获可用于测量输入信号的脉冲宽度和频率,输出比较可以用于输出PWM波。
基本定时器(TIM6、TIM7)用于产生DAC触发信号。
系统嘀嗒定时器SysTick:24位递减计数器,自动重加载初值,常用于产生μs级、ms级延时,其工作频率计算公式为
其中CK_CNT表示定时器工作频率,TIMx_PSC表示分频系数。
高级定时器的内部时钟由APB2产生,基本定时器和通用定时器内部时钟由APB1产生,如图6.28所示。
从图6.28中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自输入为APB1或APB2的一个倍频器,这个倍频器的作用是:当APB1的预分频系数为1时,倍频器不起作用,定时器的时钟频率等于APB1的频率;当APB1的预分频系数为其他数值(即预分频系数为2、4、8或16)时,这个倍频器起作用,定时器的时钟频率等于APB1的频率两倍。
下面举一个例子说明。假定AHB=36 MHz,因为APB1允许的最大频率为36 MHz,所以APB1的预分频系数可以取任意数值;当预分频系数等于1时,APB1=36 MHz,TIM2—7的时钟频率=36 MHz(倍频器不起作用);当预分频系数等于2时,APB1=18 MHz,在倍频器的作用下,TIM2—7的时钟频率=36 MHz。
既然需要TIM2—7的时钟频率=36 MHz,为什么不直接取APB1的预分频系数等于1?
图6.28 TIM定时器的时钟来源
原因是:APB1不但要为TIM2—7提供时钟,而且还要为其他外设提供时钟;设置这个倍频器可以在保证其他外设使用较低时钟频率时,TIM2—7仍能得到较高的时钟频率。
1)通用定时器
通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器,它适用于多种场合,包括测量输入信号的脉冲宽度(输入捕获)或者产生输出波形(输出比较和PWM),使用定时器预分频器和RCC时钟控制器预分频器,脉冲宽度和波形周期可以在几微秒到几毫秒间调整。每个定时器都是完全独立的,没有共享任何资源,可以同步操作。
通用定时器(TIM2、TIM3、TIM4、TIM5)的主要功能如下:
①16位向上、向下、向上/向下自动装载计数器;
②16位可编程(可实时修改)初值用于分频,分频系数1—65 536;
③有4个独立通道支持输入捕获、输出比较、PWM生成、脉冲模式输出;
④使用外部信号控制定时器和定时器互连的同步电路;
⑤可以通过事件产生中断,中断类型丰富;
⑥具备DMA功能。(www.xing528.com)
通用定时器框图如图6.29所示。
通用定时器的引脚配置见表6.10。
2)高级定时器
高级定时器由一个16位自动装载计数器组成,并通过一个可编程预分频器驱动,它适用于多种用途,包括测量输入信号的脉冲宽度(输入捕获)或者产生输出波形(输出比较、WPM、嵌入死区时间的互补PWM),使用定时器预分频器和RCC时钟控制器预分频器,脉冲宽度和波形周期可以在几微秒到几毫秒间调整。每个定时器都是完全独立的,没有共享任何资源,可以同步操作。
高级定时器(TIM1、TIM8)的主要功能如下:
图6.29 通用定时器框图
表6.10 通用定时器的引脚配置
①16位向上、向下、向上/向下自动装载计数器;
②16位可编程(可实时修改)初值用于分频,分频系数1—65 536;
③有4个独立通道支持输入捕获、输出比较、PWM生成、脉冲模式输出;
④使用外部信号控制定时器和定时器互连的同步电路;
⑤可以通过事件产生中断,中断类型丰富;
⑥具备DMA功能;
⑦支持刹车信号输入。
高级定时器框图如图6.30所示。
高级定时器的引脚配置见表6.11。
图6.30 高级定时器框图
表6.11 高级定时器的引脚配置
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。