STM32CubeMX開發之路—5定時器中斷TIM

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",即每秒打印一次


燒錄代碼後打開出口調試助手,正確的話會看到如下輸出


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