//初始化定時器
void tim2_pwm_init(u16 arr, u16 psc)
{gpio_inittypedef gpio_initstructure;
tim_timebaseinittypedef tim_timebasestructure;
tim_ocinittypedef tim_ocinitstructure;
tim_deinit(tim2);
rcc_apb1periphclockcmd(rcc_apb1periph_tim2, enable); //使能定時器時鐘
rcc_ahb1periphclockcmd(rcc_ahb1periph_gpioa, enable);//使能gpio的時鐘
//設定該引腳為復用輸出功能,輸出tim2 ch1的pwm脈衝波形
gpio_initstructure.gpio_pin = gpio_pin_15; //tim2_ch1對應
gpio_initstructure.gpio_mode = gpio_mode_af;
gpio_initstructure.gpio_otype = gpio_otype_pp;
gpio_initstructure.gpio_pupd = gpio_pupd_nopull;
gpio_initstructure.gpio_speed = gpio_fast_speed;
gpio_init(gpioa, &gpio_initstructure);//初始化gpio
gpio_pinafconfig(gpioa,gpio_pinsource15,gpio_af_tim2);
//初始化tim
tim_timebasestructure.tim_period = arr; //設定在下乙個更新事件裝入活動的自動重裝載暫存器週期的值
tim_timebasestructure.tim_prescaler =psc; //設定用來作為timx時鐘頻率除數的預分頻值
tim_timebasestructure.tim_clockdivision =tim_ckd_div1; //設定時鐘分割:tdts = tck_tim
tim_timebasestructure.tim_countermode = tim_countermode_up;
tim_timebasestructure.tim_repetitioncounter = 0;
tim_timebaseinit(tim2, &tim_timebasestructure); //根據tim_timebaseinitstruct中指定的引數初始化timx的時間基數單位
//初始化tim2 channel1 pwm模式
tim_ocinitstructure.tim_ocmode = tim_ocmode_pwm2; //選擇定時器模式:tim脈衝寬度調製模式2
tim_ocinitstructure.tim_ocidlestate = tim_ocidlestate_set;
tim_ocinitstructure.tim_outputstate = tim_outputstate_enable; //比較輸出使能
tim_ocinitstructure.tim_ocnidlestate = tim_ocnidlestate_reset;
tim_ocinitstructure.tim_outputnstate = tim_outputnstate_disable;
tim_ocinitstructure.tim_ocpolarity = tim_ocpolarity_high; //輸出極性:tim輸出比較極性高
tim_ocinitstructure.tim_pulse = (arr+1)/2; //設定待裝入捕獲比較暫存器的脈衝值,高於脈衝值就會產生高電平
tim_oc1init(tim2, &tim_ocinitstructure); //根據t指定的引數初始化外設
tim_oc1preloadconfig(tim2, tim_ocpreload_enable); //使能tim1在ccr1上的預裝載暫存器
tim_cmd(tim2, disable);
//5khz pwm定時器
//定時器2時鐘84m,分頻係數84,所以84m/84=1000khz的計數頻率,計數1次為1us
tim2_pwm_init(1000/5-1, 84 - 1);
tim_cmd(tim2, enable);
基於stm32f407建立stm32F427工程
分為三個部分 1.啟動檔案 2.fwilib 包含兩個資料夾inc和src。src裡面是stm32資源的c檔案,inc則是32資源的h檔案 3.user這也是我不太理解的部分 ddbugconfig只包含了用於debug的初始化,則是f4的系統檔案。我是在f407的基礎上改的 總的來說 1.改了晶元...
STM32F407標準庫學習筆記 EXTI機制
如上圖所示,紅色為自引腳傳入的硬體電平訊號,綠色為暫存器傳來的軟體電平訊號 兩者皆為 能夠觸發 中斷 事件 的訊號,交匯於或門,兩者都可以單獨向後面發出訊號。即訊號 有軟 硬兩種。藍色線路 意為 將 或門傳出的訊號 視為中斷訊號,借助兩個 且門 和兩組對應的 遮蔽暫存器的 輸出訊號,實現藍色通路,黃...
STM32F407標準庫學習筆記 SYSTICK
systick定時器與核心緊密相連,請參考arm公司的手冊,他的中斷使能在自己的模組中,中斷優先順序和標誌位在scb中。typedef struct systick type 控制及狀態暫存器 計數標誌 時鐘源 異常 中斷 使能 計時器使能 開始 重裝載數值暫存器 倒計時起始值,24位有效,因為是減...