STM32CubeMX開發之路—5定時器中斷TIM
運行環境
- Windows10
- STM32CubeMX___Version 5.0.0
- Keil5(MDK5)___Version 5.15
簡介
本例程主要講解如何使用定時器實現一個定時器中斷,每秒打印一串數據
STM32CubeMx基本配置
基礎配置過程請參考 STM32CubeMx(Keil5)開發之路—配置第一個項目
爲了方便調試,重定向printf,進行usart設置
1——點擊USART1進行設置
2——模式選擇Asynchronous異步傳輸
3——可以看到右邊自動出現了Tx和Rx
4——可以自行設置波特率,停止位,校驗位等參數
1——點擊Clock Configuration進行設置
2——注意這幾個地方的時鐘(後面進行分頻設置的時候需要)
點擊TIM1進行設置
1——時鐘源Clock Source選擇Intemal Clock
2——預分頻選擇36000-1也就是35999(注意16位最大隻能表示65535)
3——自動重裝載值設置爲2000-1也就是1999
講解:定時器更新中斷的頻率=時鐘頻率/(預分頻+1)/(自動重裝載值+1)
即 :72000000/36000/2000=1(HZ),也就是每秒進一次中斷
在NVIC Setting裏面勾選TIM1 update interrupt
代碼修改
1——選擇main.c文件
2——在USER CODE中添加如下代碼,重定向printf
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch,1, 0xFFFF);
return ch;
}
在主函數中添加如下代碼啓動定時器
重寫中斷函數,打印"123456",即每秒打印一次
燒錄代碼後打開出口調試助手,正確的話會看到如下輸出