HAL庫 定時器3 中斷 翻轉LED


  開啟定時器3 實現每1s翻轉LED,公式 Tout = (ARR+1)*(PSC+1)/TCLK

(1)ARR : 自動重裝載值 / 計數周期;

(2)PSC : 分頻系數 ;

(3)TCLK : 輸入時鍾 72M

 

 

 

 

 

 

  • 定時器介紹:

SMT32F1系列共有8個定時器:(區別)
高級定時器(TIM1、TIM8); /16位 / 可產生DMA請求 / 有捕獲 和 / 比較通道 / 有互補輸出 / 可用於PWM電機控制
通用定時器(TIM2、TIM3、TIM4、TIM5); / 16位 / 無捕獲
基本定時器(TIM6、TIM7). / 16位 / 無捕獲

 

  1. cubeMX 開啟 定時器3 

  2. main.c中 加入

(1)   __HAL_TIM_CLEAR_IT(&htim3,TIM_IT_UPDATE); //清除TIM初始化過程中的 更新中斷標志避免 一啟動TIm就進去中斷

(2)   HAL_TIM_Base_Start_IT(&htim3); //使能 TIM3的更新中斷 並啟動 定時器

 

  3. 在tim.c中 設置 溢出時間 :Tout = (ARR+1)*(PSC+1)/TCLK

 

 

 

 

   4. 在 tim.c 中 添加 TIM3 中斷 回調函數

 

 

 

 

(ps:過程中 對 中斷服務函數:【void TIM3_IRQHandler(void) 】重復定義導致編譯失敗,其實void TIM3_IRQHandler本身有自己不用寫)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM