定時器的倆大作用就是輸入捕獲以及輸出比較,主要參考程式為pwm輸出實驗以及觸控按鍵實驗。
無論是用作輸出還是輸入,都必須首先初始化定時器!
tim_timebaseinitstructure這個結構體主要包含上圖中的幾個引數,主要確定:
tim_clockdivisionapbx的時鐘分頻數(決定定時器的時鐘f(dts) 與apbx時鐘f(ck_int) 的比例關係),
tim_countermode計數模式,
tim_period計數器的自動重灌值arr,
tim_prescaler預分頻值(決定計數器的時鐘與定時器時鐘的比例關係),
tim_repetitioncounter在通用定時器中用不到,暫不介紹!
當用作輸入捕獲時,使用**tim_icinit()**函式進行通道的初始化。
tim_icinittypedef 型別的結構體變數主要包含以下引數:
tim_channel:說明使用哪個通道x作為輸入(1~4)
tim_icfilter:說明 當前輸入通道的icxf這一位的設定,主要是設定2個值,一是設定輸入通道tlx進行取樣的頻率f(sampling);二是設定數字濾波器的長度n,具體講解可以參考暫存器timx_ccmr1的說明(stm32f10x中文參考手冊)以及stm32f10x開發指南–庫函式版本 第223頁關於icxf 的具體講解。
tim_icpolarity:設定timx_ccer中相應的ccxp位,設定為上公升沿捕獲還是下降沿捕獲,還是上公升沿和下降沿都可以捕獲。
tim_icprescaler:設定timx_ccer中相應的icxpsc位,設定輸入的預分頻係數,如果不分頻,檢測到每乙個邊沿都觸發一次捕獲;如果是2分頻,表示2個事件觸發一次捕獲。
tim_icselection:設定timx_ccer中相應的ccxs位,定義x這個通道的方向(輸入/輸出),如果是輸入,同時確定輸入腳icx的選擇。具體可以看通用定時器的框圖。
當用作輸出比較通道時,根據使用的通道不同(1~4)使用不同的通道模式初始化函式,tim_oc1init、tim_oc2init、tim_oc3init、tim_oc4init分別代表通道1-4.以tim_oc1init()舉例說明。
tim_ocinittypedef結構體包含以下引數:(我們主要用以下三個)
tim_ocmode設定比較輸出模式,設定timx_ccmrx中的ocxm[2:0]位來進行設定
tim_outputstate設定比較輸出使能,設定timx_ccer中的ccxe位;
tim_ocpolarity設定ocx的有效電平是高電平還是低電平 設定timx_ccer中的ccxp位;
STM32學習 定時器(通用定時器)
如圖所示,輸出理解時注意兩種訊號ocxref和ocx,ocx是直接連到埠的訊號,ocxref是輸出控制的輸出訊號。一般在參考手冊中大多數講ocxref。ocx與ocxref可由ccxp控制是否反向,由ccxe控制訊號輸出。比較輸出功能 輸出乙個波形 指示一段給定時間已到。它的原理是通過計數器的值cn...
STM32定時器(TIM)之通用定時器
stm32的通用定時器有四個,分別是tim2,tim3,tim4,tim5,有以下功能 通用定時器的框圖如下 從圖中可以看出,通用定時器timx的觸發源 計數器時鐘的時鐘源 有四個 1 內部時鐘 clk int 2 外部時鐘模式1 外部輸入引腳 tix 分別經timx chx通道傳入 3 外部時鐘模...
stm32關定時器 STM32定時器TIM3程式
include led.h include delay.h include key.h include sys.h include usart.h include timer.h stm32開發板實驗8 定時器中斷實驗 int main void delay init 延時函式初始化 nvic co...