一、简介
STM32F4xx系列共有14个定时器,其中2个高级定时器、10个通用定时器、2个基本定时器。下图
为各定时器及其功能。
图1.各定时器及其功能
二、定时器的计数模式
向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。
向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。
三、时基单元
图2.各个定时器所挂载在总线上的情况
定时器的时钟源:定时器TIM2~TIM5和TIM12~14挂接在APB1上,定时器TIM1和TIM8~TIM11挂接在APB2上,若外部晶振的频率为8MHz,则系统默认的时钟频率为72MHz(即AHB=72MHz)。若将APB1预分频器的分频系数设置为2,则PCLK1=36MHz。由图2可以看出,若APB1预分频系数不等于1,则定时器TIM2~TIM7的时钟频率是APB1频率的2倍,即TIM2~TIM7的时钟频率 TIMxCLK=(AHB/2)x2=72MHz;若APB2预分频系数设置为1,则PCLK2=72MHz,TIM1和TIM8 的时钟频率 TIMxCLK=72MHz。
定时器的时基单元:
图3.
预分频器(PSC):一般为16位,对时钟源CK_PSC的时钟频率进行分频,输出的脉冲供计数器计数。
自动重装寄存器(ARR):用于装载计数器的最大计数值。
计数器(CNT):当计数值达到自动重装寄存器(ARR)所设定的值时,会产生溢出事件,如果使能了中断功能,就会溢出一个中断,再由自动重装寄存器进行重新加载或更新。
定时时间的计算公式:定时时间=(ARR+1)*(PSC+1)/输入时钟频率。
四、输入捕获
输入捕获可以用于捕获外部事件(如对输入信号的上升沿、下降沿或者双边沿进行捕获),常用于测量输入信号的的脉宽和测量PWM输入信号的频率和占空比。
五、输出比较
用于控制输出信号的波形,当计数器的值与捕获/比较寄存器的值相等时,输出比较做出相应的电平变化。