定時器是用來定時的機器,是存在于STM32單片機中的一個外設。STM32一般總共有8個定時器,分別是2個高級定時器(TIM1、TIM8),4個通用定時器(TIM2、TIM3、TIM4、TIM5)和2個基本定時器(TIM5、TIM6)。
這里主要介紹兩個功能。一、定時。 二、輸出PWM波
時基單元
時基單元它包括三個寄存器,分別是:計數器寄存器(TIMx_CNT)、預分頻器寄存器(TIMx_PSC)和自動裝載寄存器(TIMx_ARR)。對這三個寄存器的介紹如下:
計數器寄存器(TIMx_CNT):向上計數、向下計數或者中心對齊計數;
計數器寄存器(TIMx_CNT):可將時鐘頻率按1到65535之間的任意值進行分頻,可在運行時改變其設置值;
自動裝載寄存器(TIMx_ARR)
預分頻器寄存器(TIMx_PSC):在時鐘信號達到計數器之前,對時間信號進行處理。(頻率乘或除整倍數)。TIME = TIME/(PSC+1)
定時功能
通過PSC和ARR進行操作。Tout=(ARR+1)(PSC+1)/TIMxCLK。
輸出PWM
利用定時器的輸出比較可以產生PWM波,PWM是控制電機速度必不可少的一個東西。STM32一個定時器有四個通道,總共可以產生四路PWM,我們在設置產生PWM時除了要設置基本的定時器的分頻系數和重裝載值之外,還要設置產生PWM的通道的參數以及調用相關的使能函數。
?PWM模式可以產生一個由TIMx_ARR寄存器確定頻率、由TIMx_CCRx寄存器確定占空比的信號。
PSC(預分頻系數),ARR(自動重裝器系數),CCR(捕獲/比較器系數)
PWM頻率=更新頻率:Freq(時鐘數)/(PSC+1)/(ARR+1)
PWM占空比:Duty=CCR/(ARR+1)
標準頻率=72M/(PSC+1)
PWM分辨率:Reso=1/(ARR+1)
PWM模式分為兩類
PWM模式1的情況下,當前值小于比較值為有效電平;PWM模式2的情況下,當前值大于比較值為有效電平。