一:定時器中斷實現步驟
① 能定時器時鐘。
rcc_apb1periphclockcmd();
②初始化定時器,配置
arr,psc
。tim_timebaseinit
();③
開啟定時器中斷,配置
nvic
。void
tim_itconfig
();nvic_init
();④
使能定時器。
tim_cmd
();⑥
編寫中斷服務函式。
timx_irqhandler
();tout
(溢位時間)=(
arr+1)(psc+1)/
tclk
u 自動重裝載暫存器(
timx_arr)u
預分頻暫存器
timx_psc
u 計數器當前值暫存器
cntu
控制暫存器1(
timx_cr1) u
dma中斷使能暫存器(
timx_dier)
二:pwm
輸出配置步驟
① 使能定時器
3和相關
io口時鐘。
使能定時器
3時鐘:
rcc_apb1periphclockcmd();
使能gpiob
時鐘:rcc_apb2periphclockcmd();
②
初始化io
口為復用功能輸出。函式:
gpio_init
();gpio_initstructure.gpio_mode
=gpio_mode_af_pp;③
這裡我們是要把
pb5用作定時器的
pwm輸出引腳,所以要重對映配置,
所以需要開啟
afio
時鐘。同時設定重對映。
rcc_apb2periphclockcmd(rcc_apb2periph_afio,enable);
gpio_pinremapconfig
(gpio_partialremap_tim3, enable);
④
初始化定時器:
arr,psc
等:tim_timebaseinit
();⑤
初始化輸出比較引數
:tim_oc2init();
⑥ 使能預裝載暫存器:
tim_oc2preloadconfig(tim3,
tim_ocpreload_enable
);⑦
使能定時器。
tim_cmd
();⑧
不斷改變比較值
ccrx
,達到不同的占空比效果
:tim_setcompare2();
pwm輸出庫函式
void
tim_ocxinit
(tim_typedef
*timx
, tim_ocinittypedef
*tim_ocinitstruct
);typedef
struct
tim_ocinittypedef
;模板**:
tim_ocinitstructure.tim_ocmode
= tim_ocmode_pwm2; //pwm模式2
tim_ocinitstructure.tim_outputstate
=tim_outputstate_enable
;//比較輸出使能
tim_ocinitstructure
.tim_pulse
=100;
tim_ocinitstructure.tim_ocpolarity
=tim_ocpolarity_high
;//輸出極性
:tim
輸出比較極性高
tim_oc2init(tim3, &
tim_ocinitstructure
); //根據t
指定的引數初始化外設
tim3oc2
u設定比較值函式:
void
tim_setcomparex
(tim_typedef
*timx
, uint16_t compare2);
u使能輸出比較預裝載:
void tim_oc2preloadconfig(
tim_typedef
*timx
, uint16_t
tim_ocpreload
); u
使能自動重裝載的預裝載暫存器允許位:
void
tim_arrpreloadconfig
(tim_typedef
*timx
, functionalstate
newstate);
u stm32 pwm
工作過程(通道
1為例)
ccr1:
捕獲比較(值
)暫存器(
x=1,2,3,4):
設定比較值。
ccmr1:oc1m[2:0]位:
對於pwm
方式下,用於設定
pwm模式1或者
pwm模式
2 ccer:cc1p
位:輸入/捕獲
1輸出極性。
0:高電平有效,
1:低電平有效。
ccer:cc1e
位:輸入/捕獲
1輸出使能。
0:關閉,
1:開啟。
STM32之定時器
stm32f4的定時器分布如下 其中基本定時器包括tim6 tim7,其結構最簡單,也具有最基本的定時功能,一是用於基本定時 產生時基 二是用於驅動dac數模轉換器。其中通用定時器包括time2 time5,time9 time14共10個 通用定時器除了包含基本定時器的功能外還有輸入捕獲 輸出比較...
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...
STM32之定時器 例項
pwm輸出例項 pwm在電力電子技術中佔據著重要的地位,被廣泛地用在逆變電路之中。利用stm32定時器的pwm輸出功能,可以直接獲取pwm波。根據面積等效原理,利用規則取樣法 查表法可以調製出spwm波及各種調製pwm波形。這裡實現的是輸入占空比固定的pwm波形 ps 通用定時器tim3產生4路不同...