stm32通用定時器的PWM輸出

2021-07-11 05:08:27 字數 1923 閱讀 9921

配置過程:(以tim3為例,其ch1-ch4為:pa6、pa7、pb0、pb1)

1)開啟tim3時鐘,配置4個io口為復用推挽輸出。

2)設定tim3的arr和psc來控制pwm的週期。

3)設定tim3的ch1-ch4的pwm模式及通道方向,使能tim3的ch1-ch4輸出。

4)使能tim3。

程式如下:

/*

* 函式名:tim3_gpio_config

* 描述 :配置tim3復用輸出pwm時用到的i/o

* 輸入 :無

* 輸出 :無

* 呼叫 :內部呼叫

*/void tim3_gpio_config(void)

/* * 函式名:tim3_mode_config

* 描述 :配置tim3輸出的pwm訊號的模式,如週期、極性、占空比

* 輸入 :無

* 輸出 :無

* 呼叫 :內部呼叫

*/void tim3_mode_config(void)

/* * 函式名:tim3_pwm_init

* 描述 :tim3 輸出pwm訊號初始化,只要呼叫這個函式

* tim3的四個通道就會有pwm訊號輸出

* 輸入 :無

* 輸出 :無

* 呼叫 :外部呼叫

*/void tim3_pwm_init(void)

1)定時時間計算:(以定時1s為例)

((1+tim_prescaler )/72m)*(1+tim_period )=((1+7199)/72m)*(1+9999)=1秒 */

定時器的基本設定:

tim_timebasestructure.tim_prescaler = 7199;//時鐘預分頻數   例如 :時鐘頻率=72/(時鐘預分頻+1)  

tim_timebasestructure.tim_period = 9999; // 自動重裝載暫存器週期的值

tim_timebasestructure.tim_countermode =  tim1_countermode_up; //定時器模式  向上計數 

tim_timebasestructure.tim_clockdivision = 0x0; //時間分割值  

tim_timebaseinit(tim2, &tim_timebasestructure);//初始化定時器2

tim_itconfig(tim2, tim_it_update, enable);  //開啟中斷   溢位中斷  

tim_cmd(tim2, enable);//開啟定時器

或者:tim_timebasestructure.tim_prescaler = 35999;//分頻35999      72m/

(35999+1)/2=1hz  1秒中斷溢位一次

tim_timebasestructure.tim_period = 2000; //計數值2000 

((1+tim_prescaler )/72m)*(1+tim_period )=((1+35999)/72m)*(1+2000)=1秒 */  

2)pwm ch1輸出模式(

tim_ocmode )配置:

pwm1模式是:在向上計數時,當timx_cnt在向下計數時,當timx_cnt>timx_ccrn時,通道n輸出為無效電平,否則為有效電平;pwm2模式與pwm1模式相反。其中有效電平是指tim_ocpolarity 的值,上面例子中有效電平為高電平。

tim_ocxpreloadconfig(tim3, tim_ocpreload_enable);配置了各通道的比較暫存器tim_crr預裝載使能;使用tim_arrpreloadconfig()把過載暫存器timx_arr使能,最後用tim_cmd()使能定時器tim3,定時器外設就開始工作了。

stm32通用定時器

stm32的定時器是個強大的模組,定時器使用的頻率也是很高的,定時器可以做一些基本的定時,還可以做pwm輸出或者輸入捕獲功能。時鐘源問題 名為timx的有八個,其中tim1和tim8掛在apb2匯流排上,而tim2 tim7則掛在 apb1匯流排上。其中tim1 tim8稱為高階控制定時器 adva...

STM32通用定時器配置

stm32通用定時器配置 一 stm32 通用定時器原理 stm32 系列的cpu 有多達8 個定時器,其中tim1 和tim8 是能夠產生三對pwm 互補輸出的高階定時器,常用於三相電機的驅動,它們的時鐘由apb2 的輸出產生。其它6 個為普通定時器,時鐘由apb1 的輸出產生。下圖是stm32參...

STM32 通用定時器的輸出PWM功能 學習筆記

首先來說,你要使用pwm模式你得先選擇用哪個定時器來輸出pwm吧!除了tim6 tim7這兩個普通的定時器無法輸出pwm外,其餘的定時器都可以輸出pwm,每個通用定時器可以輸出4路pwm,高階定時器tim1 tim8每個可輸出7路pwm。選好定時器及通道後,下一步就是要使能定時器的時鐘。先貼 再對每...