STM32 Nucleo BoardでLチカするまでの手順
この記事では、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
また、機能の使用状況データを収集して良いかも聞かれます。これも適当に答えましょう。[3]
Features Usage Statistics Agreement
STM32CubeIDEが起動して次のような表示になります。
STM32CubeIDE
問題なさそうですね。先に進みます。
プロジェクトの作成
上図の左上にある【Start new STM32 project】ボタンからプロジェクトを開始します。
ボタンを押してしばらく待つと(1分くらい?ちょっと待ちます)ウインドウが表示されます。ターゲットを選択する必要があるみたいなので、買ったマイコンボードにあわせてNUCLEO-F446REを選択しました。
STM32 Project - Target Selection
上図で【Next】と進むとプロジェクト名とオプションを設定できるので適当に設定します。[4]
STM32 Project - Name and Options
上図で【Finish】とすると下図のウインドウが表示されます。適当に進めましょう。
Board Project Options:
Open Associated Perspective?
上図は両方とも Yes
で進めました。さらにライセンスへの同意が求められます。
Licensing Agreement
上図のライセンスに同意すると次のように表示されます。無事プロジェクトが作られたようです。
Device Configuration Tool
メニューの【Project】から【Build All】と辿ってプロジェクトをビルドしてみましょう。
問題なくビルドが完了し、画面左にあるProject Explorerタブの blink
プロジェクトにBinariesが表示されます。これを展開すると blink.elf
ファイルが見えるはずです。
プログラムの書き込み
セットアップの締め括りに blink.elf
をマイコンボードへ書き込んでみましょう。
まずは開発用PCとマイコンボードをUSBケーブルで接続し、マイコンボード上のLEDが赤く点灯するのを確認します。[5]
メニューの【Run】から【Run】と辿ると次のようにウインドウが表示されるので、特に何も設定せず【OK】します。
Edit Configuration
このとき、下図のようにマイコンボードのファームウェアアップグレードについて尋ねるウインドウが表示されるかも知れません。
ST-LINK firmware verification
そのときは、【Yes】を選び、続いて表れる下図のウインドウで【Open in update mode】してから【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
を開き、次のようにコードを追加します。これを保存した後、再びビルドしてマイコンボードに書き込んでみましょう。
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チカ完了です。
マイコンボード上の LD2
LEDが点滅している様子
上図にその様子を載せましたが、マイコンボード中央やや上の LD2
LEDが緑色で点滅しました!
おわりに
今回はSTM32 Nucleo BoardでLチカするまでの手順を紹介しました。どなたかのお役に立てば幸いです。
参考資料
- STM32CubeIDE installation guide
- STM32CubeIDE ユーザ・ガイド
- STM32CubeIDEを使ってみよう How To STM32CubeIDE 日本語版 Lチカ編
Discussion