💡

STM32 Nucleo BoardでLチカするまでの手順

2022/12/21に公開

この記事では、STM32 Nucleo BoardでLチカするまでの手順を紹介します。

はじめに

少し前に STM32 Nucleo Board STM32F446RE というマイコンボードを買いまして、まずはLチカからかなあ、ということでやってみました。

セットアップ

開発環境はUbuntu 22.04 Desktopです。セットアップの手順を以降にまとめます。

STM32CubeIDEのインストール

まずはSTM32マイコン用の統合開発環境 STM32CubeIDE をインストールします。[1]

インストーラーの入手はWebサイトでライセンスに同意してメールアドレスを入力する必要がありました。メールアドレスを入力してSubmitするとメールが届くので、その文面にあるリンクからインストーラーをダウンロードします。

ダウンロードが終わったら、次のような感じでコマンドを実行します。

cd Downloads/
unzip en.st-stm32cubeide_1.11.0_13638_20221122_1308_amd64.deb_bundle.sh.zip
sudo sh ./st-stm32cubeide_1.11.0_13638_20221122_1308_amd64.deb_bundle.sh

インストールが始まったら確認項目に y とか n とか回答してしばらく待ちます。[2]

確認項目 回答
STMicroelectronics Software License Agreement I ACCEPT (y)
Do you want to install Segger J-Link udev rules? [Y/n] n

しばらくすると次のように表示されました。

STM32CubeIDE installed successfully

インストールできたようです。よかったよかった。

STM32CubeIDEの起動

続いてSTM32CubeIDEを起動します。Ubuntuのデスクトップにあるアプリボタンからショートカットアイコンを見つけられるので、そこから起動すれば良いですね。

初めて起動した時はワークスペースの選択が求められます。適当に進めましょう。

STM32CubeIDE Launcher
STM32CubeIDE Launcher

また、機能の使用状況データを収集して良いかも聞かれます。これも適当に答えましょう。[3]

Features Usage Statistics Agreement
Features Usage Statistics Agreement

STM32CubeIDEが起動して次のような表示になります。

STM32CubeIDE
STM32CubeIDE

問題なさそうですね。先に進みます。

プロジェクトの作成

上図の左上にある【Start new STM32 project】ボタンからプロジェクトを開始します。

ボタンを押してしばらく待つと(1分くらい?ちょっと待ちます)ウインドウが表示されます。ターゲットを選択する必要があるみたいなので、買ったマイコンボードにあわせてNUCLEO-F446REを選択しました。

STM32 Project - Target Selection
STM32 Project - Target Selection

上図で【Next】と進むとプロジェクト名とオプションを設定できるので適当に設定します。[4]

STM32 Project - Name and Options
STM32 Project - Name and Options

上図で【Finish】とすると下図のウインドウが表示されます。適当に進めましょう。

Board Project Options:
Board Project Options:

Open Associated Perspective?
Open Associated Perspective?

上図は両方とも Yes で進めました。さらにライセンスへの同意が求められます。

Licensing Agreement
Licensing Agreement

上図のライセンスに同意すると次のように表示されます。無事プロジェクトが作られたようです。

Device Configuration Tool
Device Configuration Tool

メニューの【Project】から【Build All】と辿ってプロジェクトをビルドしてみましょう。

問題なくビルドが完了し、画面左にあるProject Explorerタブの blink プロジェクトにBinariesが表示されます。これを展開すると blink.elf ファイルが見えるはずです。

プログラムの書き込み

セットアップの締め括りに blink.elf をマイコンボードへ書き込んでみましょう。

まずは開発用PCとマイコンボードをUSBケーブルで接続し、マイコンボード上のLEDが赤く点灯するのを確認します。[5]

メニューの【Run】から【Run】と辿ると次のようにウインドウが表示されるので、特に何も設定せず【OK】します。

ST-LINK firmware verification
Edit Configuration

このとき、下図のようにマイコンボードのファームウェアアップグレードについて尋ねるウインドウが表示されるかも知れません。

ST-LINK firmware verification
ST-LINK firmware verification

そのときは、【Yes】を選び、続いて表れる下図のウインドウで【Open in update mode】してから【Upgrade】してファームウェアを更新すると良いと思います。

ST-LINK Upgrade
ST-LINK Upgrade

上図の下部に Upgrade successful. の文字が見えますね。

ファームウェアアップグレードのウインドウを閉じて、改めてメニューの【Run】から【Run】と辿って【OK】します。

マイコンボード上の LD1 LEDが点滅し、何やら書き込まれた様子です。この時STM32CubeIDEの下部を見るとConsoleタブが表示されていて、そこに次のメッセージが表示されていました。

Shutting down...
Exit.

よくわかりませんが書き込みが終わったということなのでしょう。

Lチカ

そうそう。Lチカをするのでした。どうすればLチカできるのでしょうか?

結論から言うとProject Explorerタブから Core/Src/main.c を開き、次のようにコードを追加します。これを保存した後、再びビルドしてマイコンボードに書き込んでみましょう。

Core/Src/main.c
int main(void)
{
  /* 中略 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
+    HAL_Delay(500);
+    HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
  }
  /* USER CODE END 3 */
}

これでマイコンボード上の LD2 LEDが点滅すればLチカ完了です。

マイコンボード上の  LEDが点滅している様子
マイコンボード上の LD2 LEDが点滅している様子

上図にその様子を載せましたが、マイコンボード中央やや上の LD2 LEDが緑色で点滅しました!

おわりに

今回はSTM32 Nucleo BoardでLチカするまでの手順を紹介しました。どなたかのお役に立てば幸いです。

参考資料

脚注
  1. 私はDebian Linux Installerをダウンロードしました。Windows版やmacOS版などもありますね。 ↩︎

  2. 小文字アルファベットがデフォルトだろうということで、2つ目の確認項目は n にしました。 ↩︎

  3. ここでは私は No Thanks としました。後からでも変えられそうなので気が向いたら Yes にします。 ↩︎

  4. ここではプロジェクト名に blink を、言語に C++ を設定しました。 ↩︎

  5. 私のマイコンボードでは LD1LD3 の2つが赤く点灯しました。 ↩︎

Discussion