定時器中斷實驗
一、實驗說明
平臺:STM32F103RCT6
本實驗爲定時器中斷實驗,使用STM32cube max 配置TIM3定時中斷。
注:實驗中使用了串口,所以可以沿用上一個串口中斷實驗的配置。
二、實驗操作
1、STM32系統基礎配置。
詳見上一個實驗的步驟1 – 4。
2、配置好串口1。
詳見上一個實驗。
3、配置定時器
如上圖選擇定時器3,出現如下界面:
然後配置具體參數:
上一步選擇後就會出現這個界面,配置好分頻值,計數裝載值,注意,第三個箭頭那裏要使能(ENABLE)自動重新裝置值。
時間的計算
這裏 Tout = (5000*7200)/72MHZ = 0.5秒,所以0.5秒進一次中斷。
4、定時器中斷配置
5、然後生成代碼
6、工程中添加代碼
首先要明確我們使用的是定時器的定時中斷,也就是更新中斷,所以要找對回調函數。
void TIM3_IRQHandler(void) 在stm32f1xx_it.c中
HAL_TIM_IRQHandler(&htim3);
HAL_TIM_PeriodElapsedCallback(htim);
__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
這就是這幾個函數的跳轉順序,最後一個就是更新中斷的回調函數,把它 複製到TIM.c中,如下圖
7、開啓中斷
HAL_TIM_Base_Start_IT(&TIM3_Handler);
8、測試,在中斷中寫句輸出測試一下(實際開發,不會這樣乾的。)
- 因爲要輸出檢查下串口。
- 下載程序,測試:
結果如下,0.5秒輸出一次。