STM32F042K6T6>6:Timer1を使ってPWM出力

STM32F042K6T6>6:Timer1を使ってPWM出力
PWM出力の確認をします。
CubeMXで新規プロジェクトを作成し、TIM1を有効にしてPB3(LED)をDOに設定します。

TIM1の設定は以下の通りとします。

Clock SourceにInternal Clock(8MHz)をセット、Channnel1にPWM Generation CH1 をセットします。

また、基板上のLEDに相当するPB3をデジタル出力にしておきます。

PA8はTIM1_CH1と表示されここにPWM出力がでることになります

TIM1の設定は以下の通りです。クロック周波数が低いのでPrescalerは設定せずに使います。

Counter Periodは1000-1とし、繰り返し周波数が8kHzのPWMを出力することになります

これでソースコードを生成します。

初期化が終わったあたりでPWMを開始します。HAL_TIM_PWM_Start でPWMが動作します。

次にmain部分にPWMの関数を記述します
__HAL_TIM_SET_COMPARE 関数でDuty比を設定します。下のコードでは0.5秒ごとにDuty比を上げています。

 

PA8部分に抵抗とLEDを接続して動作確認をします。ブレッドボード上で実行してみました。


PA8に接続したLEDの明るさが時間で変化するのが確認できました。