STM32CubeMx之定時器

參考網頁:http://www.waveshare.net/study/article-642-1.html

一、配置

點擊.ioc重新配置一個工程
開啓定時器TIM3,選擇內部時鐘。

要確定定時的時間我們必須先確定CK_PSC的頻率,TIM3配置中選擇內部時鐘作爲時鐘源,查看數據手冊或者查看代碼可以知道TIM3是掛接到APB1時鐘線上。

計數器寄存器 (TIMx_CNT)存儲的是當前的計數值。預分頻器 (TIMx_PSC)爲多少個SK_PSC脈衝計數一次,自動重裝寄存器 (TIMx_ARR)存儲的是計數器的溢出值。

內部時鐘設置爲不分頻(CKD),則CK_PSC的時鐘頻率等於APB1的時鐘頻率84MHz,即84000 000Hz。若要定時時間爲1s,則即可設置8400分頻(預分頻器寄存器 (TIMx_PSC)的值爲8400-1),定時器的時鐘CK_CNT的頻率爲10000Hz.則自動重載寄存器 (TIMx_ARR)設置爲10000-1即定時爲1s.TRGO爲觸發輸出,可以觸發內部ADC/DAC,這裏我們沒有用到這個功能,參數爲默認設置

在NVIC Settings框勾選開啓定時器中斷。優先級爲默認。或者在NVIC配置中使能TIM3中斷。

生成報告,以及生成代碼,編譯程序。

在main下面添加定時器中斷回調函數:

/* USER CODE BEGIN 4 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){
    if (htim->Instance == htim3.Instance){

    }

}
/* USER CODE END 4 */

啓動基本定時器中斷模式計數。

HAL_TIM_Base_Start_IT(&htim3);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章