STM32(エスティーエム32)は、STマイクロエレクトロニクスが提供するArm Cortex-Mコアベースの32ビットマイコンで、産業機器から車載、IoT機器まで幅広く採用されている“世界の定番”です。本記事では、はじめてSTM32に触れる人に向けて、シリーズの選び方から無償の統合開発環境STM32CubeIDEのセットアップ、そしてLチカ(LED点滅)・ボタン入力・PWMによるLED調光までを、順を追って解説します。ラズベリー・パイ PicoやESP32を触ったことがある人が“次のステップ”として本格的な組み込み開発に踏み込むための入り口としてもおすすめです。
STM32とは?Arm Cortex-Mベースの定番32ビットマイコン
STM32は、ArmのCortex-Mシリーズ(M0/M0+/M3/M4/M7/M33/M55など)を中心に据えた32ビットマイコンのファミリーです。8ビットマイコンに比べて処理性能・メモリ・周辺機能(ペリフェラル)が豊富で、タイマ、ADC、UART/I2C/SPI、USB、CAN、DMAなどを1チップに統合しています。無償の開発ツールが充実し、日本語の解説書や作例も多いため、独学でも情報にたどり着きやすいのが強みです。マイコン全般の考え方はラズベリー・パイ Pico 2で始めるマイコン入門とも共通するので、あわせて読むと理解が深まります。
STM32のシリーズと選び方
STM32は用途に応じて多数のシリーズに分かれています。おおまかには次のように捉えると選びやすくなります。
- STM32F0 / C0:低コスト・入門向けのエントリー。
- STM32F1:定番の中核。安価な「Blue Pill」基板(STM32F103)で有名。
- STM32F4 / F7 / H7:高性能。DSP・FPU搭載で信号処理や画像にも。
- STM32L / U5:超低消費電力。電池駆動のIoT機器向け。
- STM32WB / WL:Bluetooth・LoRaなど無線内蔵。
- STM32N6:NPU「Neural-ART」を搭載した最新のエッジAI向け。
最初の1枚としては、STマイクロ公式の評価ボードNucleoシリーズ(例:Nucleo-F401RE、Nucleo-G431RB)が扱いやすくおすすめです。デバッガ(ST-LINK)が基板に載っているため、USBケーブル1本で書き込み・デバッグができます。より安価に始めたい場合は前述のBlue Pillもありますが、別途ST-LINKデバッガが必要になります。
開発を始めるために用意するもの
最小構成は次のとおりです。
- STM32 Nucleoボード(1枚。ST-LINK内蔵)
- USBケーブル(ボードのコネクタに合うもの。多くはUSB Type-A〜microやType-C)
- Windows / macOS / Linux のいずれかが動くPC
- Lチカ以降の実験用に、ブレッドボード・ジャンパー線・LED・抵抗(330Ω前後)
Nucleoにはユーザー用LED(多くは「LD2」)とユーザーボタン(B1)が最初から載っているので、追加部品なしでもLチカとボタン入力まで試せます。
開発環境の全体像:CubeIDE / CubeMX / CubeProgrammer
STM32の公式ツール群は「STM32Cubeエコシステム」と呼ばれ、初心者はまず次の3つを押さえれば十分です。
- STM32CubeIDE:Eclipseベースの統合開発環境。次のCubeMXとコンパイラ・デバッガを1つにまとめたもの。基本はこれ1つでOK。
- STM32CubeMX:ピン配置やクロック、ペリフェラルをGUIで設定すると初期化コード(HAL)を自動生成するツール。CubeIDEに統合されています。
- STM32CubeProgrammer:ファームウェアの書き込み・読み出しを行う単体ツール。
STM32CubeIDEはSTマイクロの公式サイトから無償でダウンロードでき、Windows・macOS・Linuxに対応します。2025年にはVS Code版も登場し、普段VS Codeを使う人にも選択肢が広がりました。
STM32CubeIDEのインストールと最初のプロジェクト作成
大まかな流れは次のとおりです。
- 公式サイトでアカウント登録し、STM32CubeIDEのインストーラを入手して実行する。
- 起動したら「File → New → STM32 Project」を選ぶ。
- ボード選択画面で「Board Selector」タブから使用するNucleo(例:NUCLEO-F401RE)を選ぶ。
- プロジェクト名を付けて作成すると、CubeMXのピン設定画面(.iocファイル)が開く。
- 初期状態のまま「Project → Generate Code」で初期化コードが生成される。
ボードを選んで作成すると、LD2に対応するGPIOやクロックは自動で設定されるため、初回は生成されたコードにLチカ処理を少し足すだけで動かせます。
Lチカ(GPIO出力)を動かす
Nucleoのユーザー LED「LD2」は多くのボードでGPIOAの13番などに割り当てられ、CubeMXがLD2_Pin / LD2_GPIO_Portというマクロを生成します。自動生成されたmain.cのwhile(1)ループに、次のようにトグル処理を書きます。
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
HAL_Delay(500); /* 500ミリ秒待つ */
/* USER CODE END 3 */
コードは必ず/* USER CODE BEGIN */〜/* USER CODE END */のコメントで囲まれた領域に書きます。ここ以外に書くと、CubeMXで再生成したときに消えてしまうためです。書けたら金づちアイコンでビルドし、虫アイコン(Debug/Run)でボードへ書き込むと、LD2が0.5秒周期で点滅します。これがSTM32版の“Hello World”です。基本的な流れはPicoやESP32と同じで、ESP32でWi-Fi温湿度モニターを作る実践入門のGPIO操作と読み比べると、マイコンによる書き味の違いが見えてきます。
ボタン入力とPWMでLEDを調光する
次のステップとして、ユーザーボタン(B1)でLEDのオン・オフを切り替えたり、タイマのPWM機能でLEDをじわっと明るくしたりしてみましょう。ボタンはHAL_GPIO_ReadPin()で状態を読み取れます。
if (HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin) == GPIO_PIN_RESET) {
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET); /* 押されたら点灯 */
}
調光にはタイマのPWM出力を使います。CubeMXでタイマ(例:TIM2)の対象チャネルを「PWM Generation」に設定し、生成後に次のように開始してデューティ比(CCR)を変えると、明るさが連続的に変化します。
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, duty); /* dutyを0〜最大値で変化 */
GPIO・割り込み・タイマ・PWMという流れを一度体験すると、他のペリフェラル(ADCでのセンサ読み取り、UARTでのPC通信など)も同じ作法で応用できるようになります。
Arduino・PlatformIO・MicroPythonという選択肢
「いきなりHALは難しそう」という場合、STM32をもっと手軽に扱う方法もあります。STM32duino(Arduino_Core_STM32)を使えば、Arduino IDEのdigitalWrite()やanalogWrite()でSTM32を動かせます。VS Code+PlatformIOはライブラリ管理やビルドが快適で、Arduino/HALの両方に対応します。さらに一部のSTM32F4系ではMicroPythonも動作し、Pythonで手早く試作できます。まずArduinoで感覚をつかみ、慣れたらCubeIDE+HALへ移行する、という進め方は挫折しにくい王道です。
STM32N6で広がるエッジAI(Neural-ART NPU)
STM32の学習はエッジAIにも直結します。2024年以降に登場したSTM32N6は、STマイクロ独自のNPU「Neural-ART Accelerator」を内蔵した初のSTM32で、800MHz動作のCortex-M55コアと合わせて最大600 GOPS級の推論性能を持ち、カメラ画像や音声のオンデバイス推論を低消費電力で実行できます。モデルの変換・最適化にはSTM32Cube.AI(X-CUBE-AI)やST Edge AI Developer Cloud、STM32モデルズーが使えます。マイコン上でAIを動かす流れはエッジAI・TinyML完全解説やNPU内蔵MCUの最前線で全体像をつかめます。STM32でLチカから始めた延長線上に、こうした最新のエッジAI開発が地続きで広がっているわけです。
STM32学習でつまずかないコツと、その先のキャリア
最初のつまずきポイントは「書き込めない」「デバッガが認識しない」といった環境まわりが大半です。ケーブルが充電専用でデータ通信に対応していない、ST-LINKのファーム更新が必要、ボードのジャンパ設定が違う、といった原因が多いので、公式ドキュメント(ユーザーマニュアル)を落ち着いて確認すると解決しやすくなります。STM32のHAL/LLやRTOS、周辺回路の扱いは組み込みエンジニアの実務スキルそのものであり、近年はエッジAIと組み合わせられる人材の価値も高まっています。手を動かして基礎を固めれば、キャリアの選択肢は着実に広がります。
🔧 手を動かして試すための機材
型番の改訂が多い分野のため、常に現行品が並ぶAmazon検索結果へのリンクにしています
ST-LINKデバッガ内蔵で最初の一枚に最適。Arduino互換ピンで拡張しやすい
Blue Pill(STM32F103)など単体チップ基板の書き込み・デバッグに
Lチカや配線練習に必要な基本パーツ一式
Neural-ART NPU搭載。カメラ画像や音声のオンデバイス推論を試したいときに
※Amazon.co.jpのアフィリエイトリンクを含みます
よくある質問(FAQ)
STM32とArduino、初心者はどちらから始めるべきですか?
目的によります。とにかく手早く動かして電子工作を楽しみたいならArduinoやESP32が近道です。一方でレジスタやペリフェラル(タイマ・DMA・割り込み)といった“組み込みの本質”を学び、業務にもつながる力を付けたいならSTM32が向きます。STM32でもArduino環境(STM32duino)を使えるため、Arduinoに慣れてから徐々にHALやCubeIDEへ移行する道もあります。
STM32CubeIDEは無料で使えますか?
はい。STM32CubeIDEはSTマイクロエレクトロニクスが無償提供する統合開発環境で、コード生成ツールCubeMXとコンパイラ・デバッガが一体になっています。公式サイトでアカウント登録のうえダウンロードでき、Windows・macOS・Linuxに対応します。2025年にはVS Code版の提供も始まりました。
STM32で学んだスキルは仕事につながりますか?
つながります。STM32は産業機器・車載・IoT機器などで広く採用されている定番マイコンで、HAL/LLやRTOS、周辺回路の扱いは組み込みエンジニアの実務スキルと直結します。近年はNPUを内蔵したSTM32N6のようなエッジAI向け製品も登場し、AIと組み込みをまたぐ人材の需要が高まっています。
まとめ
STM32は、無償のSTM32CubeIDEとNucleoボードがあれば、ケーブル1本で書き込み・デバッグまで体験できる“本格的だけど始めやすい”定番マイコンです。まずはLチカ、次にボタン入力とPWMによる調光へと進め、GPIO・タイマ・割り込みという組み込みの基礎作法を身につけましょう。慣れてきたら、STM32duinoやPlatformIOで開発効率を上げたり、STM32N6のNPUでエッジAIに挑戦したりと、発展の道が広がっています。ラズベリー・パイ PicoやESP32を触った人にとっても、STM32は一段深い“組み込みの世界”への確かな入り口になります。
本記事はSTマイクロエレクトロニクスおよびArmの公式情報に基づいて執筆しています。仕様やツールのバージョンは更新される場合があるため、導入時は公式サイトの最新情報をご確認ください。本記事にはアフィリエイトリンク(広告)を含みます。




