參考網頁: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);