XIAO STM32C5 と STM32CubeIDE

概要
STM32CubeIDE は、STMicroelectronics が提供する STM32 マイコン向けの公式無償クロスプラットフォーム統合開発環境です。XIAO STM32C5 向けアプリケーションの開発にも適しています。
STM32CubeIDE は GNU Arm ツールチェーンを同梱しており、CMake と Ninja に基づくビルドワークフローをサポートすることで、追加の環境構成の必要性を減らします。プロジェクト作成、ペリフェラル設定、コード編集、コンパイル、ファームウェア書き込み、ターゲット上でのデバッグまで、開発の一連のワークフローをカバーします。
ハードウェアの準備
作業を始める前に、以下のものを準備してください。
- 1 × XIAO STM32C5
- PC と Type‑C USB ケーブル
- 1 × ST‑LINK/V2(オプション)
| Seeed Studio XIAO STM32C5 |
|---|
![]() |
STM32CubeIDE のインストール
- インストールパッケージをダウンロードします。STM32CubeIDE Software をクリックしてダウンロードページに移動します。トップページで Get Software を選択するか、ページの一番下までスクロールします。お使いの PC のオペレーティングシステムに合ったインストーラを選択してください。最新バージョンの使用を推奨します。

- インストーラは、登録済みアカウントでもゲストとしてもダウンロードできます。この手続きにはメールアドレスなどの関連情報が必要です。

- ダウンロードリンクがあなたのメールアドレス宛に送信されます。リンクをクリックしてソフトウェアインストーラを取得します。

- インストーラを起動し、関連するライセンス契約を読み、I Agree を選択します。

- インストール先ディレクトリを選択します。

- 使用予定のデバッグプローブ用ドライバをインストールします。後述の UF2 書き込み手順ではプローブドライバは不要です。

XIAO STM32C5 での開発
- XIAO STM32C5 は UF2 形式のファームウェア書き込みをネイティブにサポートしているため、開発を簡素化するためのリファレンス用サンプルプロジェクトを用意しています。以下のリンクをクリックしてサンプルをダウンロードしてください。
-
🗃️[Project] XIAO STM32C5 Blink Project
-
ダウンロード後、アーカイブを解凍します。生成されたプロジェクト構成は、下図のレイアウトと一致している必要があります。

- STM32CubeIDE を起動すると、下図のような画面が表示されます。本セクションの内容は 📄[PDF] STM32CubeIDE User Guide からの抜粋です。
初回起動時、STM32CubeIDE はワークスペースの選択を求めてきます。デフォルトのワークスペースで問題なく、後続の手順に影響することはありません。

- プロジェクトをインポートします。右上のツールバーで File → STM32 Project Create/Import に進み、Import STM32CubeMX / STM32CubeIDE Project を選択します。

- 解凍した xiao_c5_project プロジェクトディレクトリを選択し、Finish をクリックします。

- インポート後のプロジェクト構成は、下図のようになります。

- SDK: STM32CubeC5 SDK パッケージを含みます。これは XIAO STM32C5 ファームウェアのビルドに必要なファイルのみを含む縮小版 SDK であり、フル SDK リリースではありません。
- Source: ソースコードディレクトリで、
main.cと XIAO STM32C5 用のボード定義ファイルが含まれます。 - Startup: XIAO STM32C5 に必須のスタートアップファイルです。
- tools: ビルドごとにコンパイル済み bin バイナリを UF2 形式に変換する
uf2conv.pyスクリプトが含まれます。
ファームウェアのビルドと書き込み
- プログラム概要。Source → main.c を開きます。これは XIAO STM32C5 のオンボード LED を点滅させるシンプルなサンプルです。LED の論理レベルを 500 ms ごとに切り替えることで点滅動作を実現しています。
/**
* @file main.c
* @brief Minimal LED application for the Seeed XIAO STM32C5.
*
* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Seeed Technology Co., Ltd.
*/
#include "board.h"
#include "uart_io.h"
int main(void)
{
if (HAL_Init() != HAL_OK) {
Error_Handler();
}
board_clock_init();
board_uart_init();
board_led_init();
// uprintln("[LED] PB12 onboard LED is blinking (500 ms interval)");
uart_log_flush();
while (1) {
HAL_GPIO_TogglePin(LED_PORT, LED);
uprintln("[LED] PB12 onboard LED is blinking");
uart_log_flush();
HAL_Delay(500U);
}
}
board_clock_init();: XIAO STM32C5 に必要なペリフェラルクロックを初期化します。board_uart_init();: XIAO STM32C5 の UART I/O 設定を初期化します。board_led_init();: XIAO STM32C5 のオンボードユーザー LED 用 I/O 設定を初期化します。HAL_GPIO_TogglePin(LED_PORT, LED);: STM32 HAL ライブラリの GPIO トグル関数で、ユーザー LED の GPIO 論理レベルを反転させます。
- ツールバーで Release を選択して、自動的にプロジェクトビルドを実行します。

- ビルドが成功すると、複数のビルド成果物を含む Release フォルダが生成されます。この出力のうち、bin ファイルと uf2 ファイルが必要なファイルです。

Build を選択してプロジェクトをビルドすることもできます。この場合、生成されたファームウェアファイルを含む Build フォルダが作成されます。
UF2 形式ファームウェアの書き込み
- XIAO STM32C5 のリセットボタンを素早く 2 回押します。XIAO STM32C5 のマスストレージドライブがポップアップ表示されるので、このドライブに UF2 ファイルをコピーすると書き込みが完了します。

ST-LINK/V2 を使った書き込み
ST-LINK/V2 は、STMicroelectronics が提供する公式のデバッグおよびプログラミングツールです。STM8 および STM32 マイコンファミリをサポートし、SWIM、JTAG、SWD インターフェース経由でのプログラムダウンロード、ファームウェア書き込み、オンチップデバッグを可能にします。以下では、ST‑LINK/V2 と STM32CubeIDE を併用して XIAO STM32C5 にファームウェアを書き込む方法を説明します。
- ST‑LINK/V2 を PC に接続します。IDE で Help → ST‑LINK Upgrade に進み、STM32C5 デバイスとの良好な互換性を確保するために、そのファームウェアを最新バージョンに更新します。

- ST‑LINK/V2 を XIAO STM32C5 に接続します。ピン接続については以下を参照してください。この手順にははんだ付けが必要です。

- 接続ピンのうち、RST は任意のインターフェースであり、未接続のままでも構いません。
- 手動ではんだ付けを行わずに、XIAO Debug Mate を使用して ST‑LINK/V2 ツールに接続することもできます。

- ツールバーの Run をクリックして書き込みを完了します。STM32CubeIDE は ST‑LINK/V2 プログラマを自動的に検出します。

まとめ
- 上記の方法で対応するファームウェアを XIAO STM32C5 に書き込むと、オンボードのユーザー LED がトグルし、500 ms ごとに点滅します。

また、D6 と D7 を TTL‑to‑UART アダプタに接続することもできます。任意のシリアルモニタを開くと、シリアルポートに 500 ms ごとに [LED] PB12 onboard LED is blinking という文字列が出力されます。

ソースフォルダ内のファイル
-
board.c / board.h
XIAO STM32C5 用のピンマッピングおよびボード固有のリソースを定義します。クロック、GPIO、CAN、ADC などのペリフェラルに対する初期化設定を提供し、アプリケーション開発の基盤として利用できます。
-
test.c / test.h
IMU や LED などのオンボードペリフェラル、および CAN、SPI、I2C、ADC などのインターフェース向けの検証ルーチンを提供します。これらのルーチンはハードウェア機能の検証やコードリファレンスとして使用できます。
-
uart_io.c / uart_io.h
受信した UART データの文字処理およびコマンド解析を行い、テストルーチンへの対話的なエントリポイントを提供します。低レベルの通信インターフェースは他のモジュールによって実装されます。
参考リソース
- 🗃️[Project] XIAO STM32C5 Blink Project
- 📄[Document] STM32CubeIDE User Guide
- 📄[Datasheet] STM32C5A3CGX
- 📄[Examples] STM32 Example Library
技術サポートと製品ディスカッション
弊社製品をお選びいただきありがとうございます。製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じて選択いただける複数のコミュニケーションチャネルをご用意しています。
