暇人の技術備忘録

ハサミの技術備忘録

趣味でやっている電子工作の備忘録です。

【STM32備忘録】GPIOの設定方法とビルドと書き込み

f:id:sbasami:20210417145021p:plain

はじめに

前回はCubeIDEにおけるプロジェクトの作成方法について書きました。

sbasami-tech.hatenablog.com

今回はGPIOの設定方法について忘れない程度にまとめます。CubeMXでの設定とLチカプログラムを書いておきます。その流れでビルドと書き込みについても軽く触れておきます。

CubeMXでの設定

GPIOの設定

  1. 作成したプロジェクト内の.iocをダブルクリックするとCubeMXが立ち上がって以下のようなチップ・ビュー画面が出ます。
    f:id:sbasami:20210418082740p:plain

  2. 設定したいピンをクリックすると、そのピンに設定できる機能が表示される。今回は「GPIO_Output」を選択。
    f:id:sbasami:20210418082759p:plain

  3. PB3ピンが緑色になって、GPIO_Outputに設定されている。
    f:id:sbasami:20210418082816p:plain

  4. 左側の「Categories」内の「System Core」→「GPIO」で詳細な設定ができる。
    f:id:sbasami:20210418083308p:plain

  5. CubeMXのユーザマニュアルを見ると、各項目は以下のような設定ができる。

    f:id:sbasami:20210418083326p:plain

  6. 今回は「User Label」だけ変えた。「PB3 Configuration」の「User Label」を変更するとチップ・ビューの名前も変わっていることが確認できる。
    f:id:sbasami:20210418083350p:plain

  7. 設定が終わったら「Ctrl」+「s」でGenerate Codeするか聞いてくるのでYesをクリック。
    f:id:sbasami:20210418083402p:plain

  8. main.hに自分が設定したGPIOが追加されていればGenerate Code成功。
    f:id:sbasami:20210418083417p:plain

Lチカプログラムの作成

main.cのwhile文の中に以下のように書けば一応Lチカできます。HAL_GPIO_TogglePinを使うともっとスマートにかけます。
f:id:sbasami:20210418090309p:plain

HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);//ピンの出力をHIGHに
HAL_Delay(100);//100ms待機
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);//ピンの出力をLOWに
HAL_Delay(100);//100ms待機

HAL_GPIOまで打って「Ctrl」+「スペース」でコード補完をかけると以下のように出てきます。GPIOはこれらのAPIがあるらしいですね、よく使うのはWritePinとReadPinですかね。
f:id:sbasami:20210418083503p:plain

HAL_GPIO_WritePinの使い方を簡単に説明すると以下のような感じです。
f:id:sbasami:20210418083520p:plain

ポートとピンの確認はチップ・ビューを見るのが良いと思います。PA0ならPortA(GPIOA)の0番ピン、PB3ならPortB(GPIOB)の3番ピンといった感じです。
f:id:sbasami:20210418083532p:plain

ビルドと書き込み

トンカチでビルド、再生ボタンで書き込みできます。
f:id:sbasami:20210418083544p:plain

最初の書き込みは以下のような画面が出ますがデフォルトの状態で「OK」をクリック。
f:id:sbasami:20210418083555p:plain

おわりに

今回はGPIOの設定方法とビルドと書き込みについてまとめました。次はタイマーの設定についてまとめたい。

まとめました↓↓↓

sbasami-tech.hatenablog.com