STM32 NucleoボードのLチカ VS Code編
2026年05月23日 カテゴリー:STM32
STM32 Nucleoボードについて、STM32CubeMXでプロジェクトを生成し、Visual Studio Code(VS Code)と拡張機能でデバッグする方法をまとめました。STM32CubeMX 6.17.0、VS Code v1.121、Windows 11 Pro 25H2で動作確認しています。
■ 準備
STM32CubeMX をインストール
※ st.com へのユーザー登録が必要
Visual Studio Code をインストール
■ STM32CubeMX でプロジェクト生成
STM32CubeMXを起動
中央のACCESS TO BOARD SELECTORを選択
MCU・ボード一覧のダウンロードが自動で開始
使用するNucleoボードを選択 → Start Project
「Initialize all peripherals with their default Mode ?」はYesを選択
- Project Managerタブを開き以下を設定
Project Name: プロジェクト名を入力
Project Location: VS Codeで扱う任意のフォルダを選択
Toolchain / IDE:「CMake」を選択
- 「GENERATE CODE」ボタンでコード生成
ファームウェアをダウンロードするか聞かれた場合はYesを選択
※ ダウンロード、解凍に時間がかかります。
生成が完了すると、プロジェクトのファイル一式がプロジェクトフォルダに作成されます。
■ VS Code のセットアップ・デバッグ
VS Code を起動
拡張機能インストール
左側アクティビティバーのExtensions(拡張機能)を選択
「STM32CubeIDE for Visual Studio Code」を検索・インストール
- プロジェクトフォルダの設定
File → Open Folderで、STM32CubeMXで生成したプロジェクトフォルダを開く
「About to install following cube bundle(s): rtos-proxy@…」はYesを選択
「Configure discovered CMake project(s) as STM32Cube project(s)?」はYesを選択
※ 自動設定に時間がかかります。「C/C++ Extension Pack」をインストールするか尋ねられた場合、Yes / NoどちらでもOKです。
- ボード上のLED点滅(Lチカ)のコードを追加
Core/Srcフォルダ内のmain.cを開く
102行目あたり
/* USER CODE BEGIN 3 */の下に以下の記述を追加HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin); HAL_Delay(500);- ビルド設定とビルド
最下部ステータスバーの「Build(ビルド)」を実行
画面上部のコンフィグ入力欄は「Debug」を選択
- ST-LINKドライバ導入(初回のみ)
左側アクティビティバーのSTM32CUBEを選択
サイドバー「STM32CUBE RESOURCES」から「Install STLINK USB DRIVERS」を実行
- ST-LINKファームウェア更新(初回のみ)
NucleoボードをUSB接続
左側アクティビティバーの「Run and Debug」を開く
サイドバー「STM32CUBE DEVICE AND BOARDS」から「Upgrade ST-LINK firmware(↓アイコン)」を実行
- 書き込み・デバッグ実行
左側アクティビティバーの「Run and Debug」を開く
サイドバー「RUN」の「Run and Debug」ボタンを押す
デバッガに「ST-Link GDB server」を選択
デバッグ画面に移行するので、Continue(F5)を押し、LEDが点滅すれば成功です。
■ C++言語への対応例
- ファイル準備
user_main.h
#ifndef USER_MAIN_H #define USER_MAIN_H #ifdef __cplusplus extern "C" { #endif void mainLoop(); #ifdef __cplusplus } #endif #endif // USER_MAIN_Huser_main.cpp
#include "user_main.h" #include "main.h" void mainLoop() { HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin); HAL_Delay(500); }- main.c 編集
23行目
/* USER CODE BEGIN Includes */の下に以下の記述を追加#include "user_main.h"103行目
/* USER CODE BEGIN 3 */の下のLチカのコードは削除し、以下の記述を追加mainLoop();cmake/stm32cubemxフォルダ内のCMakeLists.txt 編集
※ プロジェクトフォルダ直下のCMakeLists.txtではありません。
3行目
enable_language(C ASM)を以下の記述に変更enable_language(C CXX ASM)23行目
${CMAKE_CURRENT_SOURCE_DIR}/../../Core/Src/main.cの下に以下の記述を追加${CMAKE_CURRENT_SOURCE_DIR}/../../Core/Src/user_main.cpp
以下の内容の2つのファイルを準備します。user_main.hはCore/Incフォルダに、user_main.cppはCore/Srcフォルダに置きます。
前述のビルド、デバッグが実行できれば成功です。