STM32 を使い始める
STM32 ボードは、さまざまなアプリケーションに使用できる強力なマイクロコントローラー ボードです。 このチュートリアルでは、STM32 ボードのセットアップ方法を学びます。
STM32 を選ぶ理由
STM32 には、次のような特徴があります。
- 高い処理能力
- 安価なデバッガーで開発できる
- 豊富な周辺機能
ヒント
Wi-Fi や Bluetooth を使いたい場合は ESP32、処理能力を重視する場合は STM32 が候補になります。 このチュートリアルでは ESP32 については説明しません。
必要なもの
STM32 の使用を開始するには、 次のものが必要です。
- BlackPill/Bluepill STM32 ボード:
- 安価なクローン BlackPill STM32 ボードは 4 ドル以下で購入できます。
- ST-LINK V2/V3:
- ファームウェアを基板に書き込むために使用します。
- 安価なクローン ST-LINK V2 は 5 ドル以下で購入できます。
- VSCode + PlatformIO、または Arduino IDE:
- VSCode は公式サイトからダウンロードできます。
- PlatformIO は、VSCode 拡張機能マーケットプレイスからインストールできます。
- STM32CubeProgrammer
BlackPill STM32 ボード
DFU upload
BlackPill STM32 ボードは DFU をサポートしています。つまり、USB を使用してファームウェアをアップロードできますが、デバッグなどの便利な機能を使用するには ST-LINK が必要です。
おすすめの開発環境
STM32 の開発には、次の組み合わせをお勧めします。
- VSCode と PlatformIO
- GitHub Copilot を使用すると、コードの提案を得ることができ、コードをより速く書くことができます。
- ST-LINK V2 クローン
- 非常に安い (< $5)
- BlackPill STM32 ボード
- 非常に安い (< $4)
- DFU サポート
- USB 経由でもファームウェアを書き込めます。
- ブルーピルより強力
- Arduinoフレームワーク
- 使いやすい
- 初心者にも取り組みやすい

Arduino と STM32Cube の比較
STM32 開発には、Arduino と STM32Cube という 2 つの一般的なフレームワークがあります。
備考
フレームワークは、マイコンのプログラムを開発するためのライブラリやツールをまとめたものです。
Arduino フレームワークと STM32Cube フレームワークの比較を次に示します。
| 比較項目 | Arduino フレームワーク | STM32Cube フレームワーク |
|---|---|---|
| 使いやすさ | とても簡単 | 中程度 |
| コミュニティサポート | 充実 | 中程度 |
| パフォーマンス | 中程度 | 高い |
| ライブラリの充実度 | 充実 | 中程度 |
| デバッグ | 基本的な機能 | 高度な機能 |
| 構成 | シンプル | 複雑 |
| IDE | Arduino IDE、VSCode | STM32CubeIDE、VSCode |
| 習得の難易度 | 低い | 高い |
それぞれの違いを詳しく見ていきます。
使いやすさ:
- Arduino: シンプルで初心者に優しいことで知られています。
- STM32Cube: Arduino ほど単純ではありませんが、CubeMX による構造化されたアプローチを提供し、構成とコード生成を容易にします。
コミュニティ サポート:
- Arduino: 広範なリ ソース、チュートリアル、ライブラリを備えた大規模なコミュニティ。
- STM32Cube: 成長を続けているコミュニティですが、Arduino ほど大きくはありません。
パフォーマンス:
- Arduino: 機能はありますが、Arduino フレームワークのオーバーヘッドのため、一般に STM32Cube よりもパフォーマンスが低くなります。
- STM32Cube: ハードウェア レジスタへの直接アクセスと最適化されたコード生成により、より高いパフォーマンスを提供します。
ライブラリの充実度:
- Arduino: 幅広い用途に対応するライブラリが豊富にあります。
- STM32Cube: ライブラリは増えていますが、用途によっては Arduino ほど選択肢が多くありません。
デバッグ:
- Arduino: 基本的なデバッグ機能。多くの場合シリアル出力に限定されます。
- STM32Cube: GDB および J-Link サポートを含む高度なデバッグ機能。
構成:
- Arduino: 通常、特に基本的なプロジェクトの場合、より単純な構成。
- STM32Cube: 特に高度な機能の場合、より複雑な構成オプション。
IDE:
- Arduino: Arduino IDE または Arduino 拡張機能を備えた VSCode。
- STM32Cube: STM32Cube 拡張機能を備えた STM32CubeIDE または VSCode。
習得の難易度:
- Arduino: 初心者にとって学びやすい。
- STM32Cube: マイクロコントローラーと組み込みシステムに関するより深い知識が必要です。
全体として、Arduino は初心者や単 純なプロジェクトに最適な選択肢ですが、STM32Cube は高度なアプリケーション向けに、より高い柔軟性、パフォーマンス、機能を提供します。