4:NUCLEO-F042K6 のタイマーを使ってLEDを点滅させる

4:NUCLEO-F042K6 のタイマーを使ってLEDを点滅させる

内部のタイマーを使ってLEDを点滅させます。

STEP1
CubeMXで新しいプロジェクトを作成

開発ボードSTM32F042K6T6を選択します

 

PB3(基板上のLED)を出力に設定します

今回使用するタイマーはTimer1とします。
Timer1のClock SourceをInternal Clockに設定します。

CntrolのTIM1をクリックしタイマー1の設定を開始します

NVICの設定で割り込みが発生するようにします。

内部クロックは8MHz、プリスケーラを8000-1にします。
プリスケーラは1000Hzとなります。
Counter Period は1000-1 とすると1秒周期のタイマーができあがりました。



Code genarationでTIM1をチェックしておきます。
これでコード生成ボタンをクリックしてソースコードを生成します。

生成されたコードをTrueStudioで確認します。

htim1という変数が生成されているのが確認できます。また、初期化関数が生成され宣言されています。

usercode 0 部分にタイマー割り込みハンドラを記述しました。基板上のLEDはGPIOBの3になるので割り込みごとに反転させています。

usercode2にタイマーを起動するコードを追加します。

タイマー時間を変更するにはhtim1.Init.Period の値を変更します。これはCubeMXで変更してソースを再生成しても同じになります。
このコードをデバッグ実行すると基板上のLEDが点滅するのが確認できます。

下はタイマー周期を500msにしたときの動画になります。