定時器比較輸出

2021-07-25 04:30:30 字數 1405 閱讀 2750

// 通道對應的引腳模式要設定成:gpio_initstructure.gpio_mode = gpio_mode_af_pp; 

// 因為這個問題弄了三個小時

//初始化tim3 設定為輸出比較模式

tim_ocinitstructure.tim_ocmode = tim_ocmode_pwm2; // 1

tim_ocinitstructure.tim_outputstate = tim_outputstate_enable; //2

tim_ocinitstructure.tim_ocpolarity = tim_ocpolarity_high; //3

tim_ocinitstructure.tim_pulse = 0x3fff; // tim_pulse設定了待裝入捕獲比較暫存器的脈衝值。

// 它的取值必須在0x0000和0xffff之間。

// 可以用tim_setcompare2(tim3,led0pwmval);函式更改。

tim_oc2init(tim3, &tim_ocinitstructure); //根據t指定的引數初始化外設tim3 oc2

ccmr1: oc1m[2:0]位: 用於設定pwm模式1或者pwm模式2

不同模式的具體含義檢視手冊暫存器對應的位。

使能輸出,使對應通道有訊號。

ccer:cc1p位:輸入/捕獲1輸出極性。0:高電平有效,1:低電平有效。

/* 如程式:pwm模式2 和 tim_ocpolarity_high 決定了

當timx_cnt < timx_ccr1時通道為無效電平對應為低電平。

使能預裝載暫存器對應的庫函式:

void tim_oc2preloadconfig(tim_typedef* timx, uint16_t tim_ocpreload);

影子暫存器:

void tim_arrpreloadconfig(tim_typedef* timx, functionalstate newstate);

簡單的說,arpe=1,arr立即生效。apre=0,arr下個比較週期生效。

定時器輸入捕捉 and 輸出比較

輸入捕捉 如具有此功能的乙個管腳,定時器在內部時鐘的作用下在執行,此時管腳來了個中斷,假如上公升沿吧。在中斷的作用下,定時器停止工作,此時可以讀出定時器的數值,讀出後再開啟定時器,等待下次中斷,再讀取一次定時器數值,二次相減,就可求出二次中斷的間隔時間。類似於 秒錶 的功能。輸出比較 有一暫存器先存...

TIM高階定時器(2)輸出比較(互補輸出)

輸出比較 用以輸出pwm訊號或脈衝訊號 輸入捕獲和輸出比較的暫存器共用,具體看初始化時的配置 輸出比較有8種模式,其中,只有pwm輸出模式最常用。pwm輸出就是對外輸出脈寬 即占空比 可調的方波訊號,訊號頻率由自動重灌暫存器arr的值決定,占空比由比較暫存器ccr的值決定。ccr既是捕獲暫存器,也是...

定時器的比較

一 資料結構 核心資料結構為timer wheel 其核心資料結構為 define tvn bits config base small?4 6 define tvr bits config base small?6 8 define tvn size 1 define tvr size 1 def...