HALライブラリタイマー3割り込みフリップLED

  タイマー3をオンにして、1秒ごとに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. TIM3割り込みコールバック関数をtim.cに追加します

 

 

 

 

(PS:プロセス内の割り込みサービス関数:[void TIM3_IRQHandler(void)]繰り返し定義するとコンパイルエラーが発生します。実際、void TIM3_IRQHandler自体に書き込む必要はありません)

 

おすすめ

転載: www.cnblogs.com/oneme1world/p/12677517.html