2018/4/24
1.說在前面:
由於最近在忙乙個專案的軟體部分,於是沒有多餘的時間進行總結,今天晚上趁著專案的瓶頸,換換口味
2.輸入捕獲的相關介紹
1.用途:輸入捕獲用來測量脈衝的寬度和測量頻率
2.簡單實現步驟:在檢測通道(tim_x_chx)上邊沿訊號,在邊沿訊號實現跳變時,將當前定時器的值(tim_xcnt)存放入相應的通道捕獲暫存器中(tim_xccrx),完成一次捕獲,配置是否觸發中斷
3.設定輸入捕獲的步驟
1.開啟時鐘,配置gpio口
rcc_apb1periphclockcmd(rcc_apb1periph_tim2, enable); //使能 tim2 時鐘
rcc_apb2periphclockcmd(rcc_apb2periph_gpioa, enable); //使能 gpioa 時
2.初始化定時器,設定相應的自動重裝載值和預分頻係數
tim_timebaseinittypedef tim_timebasestructure;
tim_timebasestructure.tim_period = arr; //設定計數器自動重灌值
tim_timebasestructure.tim_prescaler =psc; //設定預分頻值
tim_timebasestructure.tim_clockdivision = tim_ckd_div1; // tdts = tck_tim
tim_timebasestructure.tim_countermode = tim_countermode_up; //tim 向上計數模式
tim_timebaseinit(tim2, &tim_timebasestructure); //根據指定的引數初始化 tim2
3.設定定時器的輸入比較引數
tim_icinittypedef tim2_icinitstructure;
tim5_icinitstructure.tim_channel = tim_channel_1; //選擇輸入端 ic1 對映到 ti1 上
tim5_icinitstructure.tim_icpolarity = tim_icpolarity_rising; //上公升沿捕獲
tim5_icinitstructure.tim_icselection = tim_icselection_directti; //對映到 ti1 上
tim5_icinitstructure.tim_icprescaler = tim_icpsc_div1; //配置輸入分頻,不分頻
tim5_icinitstructure.tim_icfilter = 0x00;//ic1f=0000 配置輸入濾波器 不濾波
tim_icinit(tim2, &tim2_icinitstructure);
4.使能捕獲和中斷
tim_itconfig( tim2,tim_it_update|tim_it_cc1,enable);//允許更新中斷和捕獲中斷
5.實現中斷分組和編寫中斷服務函式
//nvic_init();
void tim2_irqhandler(void)else tim2ch1_capture_sta++;}}
if (tim_getitstatus(tim2, tim_it_cc1) != reset)//捕獲 1 發生捕獲事件
else //還未開始,第一次捕獲上公升沿}}
tim_clearitpendingbit(tim2, tim_it_cc1|tim_it_update); //清除中斷標誌位
}
6.使能定時器
tim_cmd(tim2,enable ); //使能定時器 2
ending:完成了輸入通道捕獲
stm32定時器pwm模式輸入捕獲
stm32中的定時器,除了tim6和tim7,其他定時器都有輸入捕獲功能。這種模式通常用在對輸入訊號頻率frequency 占空比duty 高低脈寬的計算中,具有很廣泛的用途。stm32的輸入捕獲,簡單的說就是通過檢測timx chx上的邊沿訊號,在邊沿訊號發生跳變 比如上公升沿 下降沿 的時候,將...
stm32單個定時器多通道輸入捕獲
這是用stm32的timer2的通道3和通道4同事捕獲 訊號,顯示高電平的時間,在keil4.7中編譯。tim icinittypedef tim2 icinitstructure 2 1 void tim2 cap init u16 arr,u16 psc 2 void tim2 irqhandl...
STM32單個定時器四通道輸入捕獲
定時器2通道1輸入捕獲配置 arr 自動重灌值 psc 時鐘預分頻數 void tim2 cap init u16 arr,u16 psc 捕獲狀態 7 0,沒有成功的捕獲 1,成功捕獲到一次.6 0,還沒捕獲到高電平 1,已經捕獲到高電平了.5 0 捕獲高電平後溢位的次數 u8 tim2ch1 c...