💪

STM32をこれから開発する方向け環境構築方法 2026年版

に公開

新しくなったSTM32開発環境

2024年版はこちら
https://zenn.dev/nonnoise/articles/e54a5182bc7a56

2年経って新しくなったみたいです。

大きな変化は、今までCubeIDEの中でCubeMXが動いていたのですが、これが完全に独立して、CubeIDEからCubeMXを別途立ち上げる様な形で切り離されました。
これにより、CubeIDE以外の開発環境(VSCodeやお高いIDE)でもCubeMXのジェネレータの恩恵を受けて開発ができるそうです。

ので、開発環境や開発手法がガラッと変わりました!!

STM32CubeIDE 2.0.0 から新しい開発作法が採用されてます。

これから始める方は、新しい開発方法で進めた方がいいので、まとめました。

インストールするソフト

この辺は変わりが無いですが、IDEを入れたら全部入る訳じゃないので、一個ずつ入れていきましょう。

STM32CubeIDE

エディターの枠ですね。先に書いたように、他のIDEを使う方法もありますが、STM32の開発って行ったらこのIDEでしょう。不満も特にありません。便利です。

https://www.st.com/ja/development-tools/stm32cubeide.html

STM32CubeMX

こちらは、今までCubeIDEに付属していたCubeMXです。
CubeMXは、ピンの機能やクロックの設定、その他多くの機能をGUIで設定出来る超便利なジェネレータです。
これが無いとSTM32のマイコン開発はほぼ無理です
単品ソフトになったので、別途インストールしましょう。

https://www.st.com/ja/development-tools/stm32cubemx.html

STM32CubeProgrammer

こちらは、今までオプションで、IDEに書き込み機能があったので、開発者には必要ないって言われていたソフトですが、STM32で色んなマイコンが登場し、これが無いと書き換え出来ない物も出てきました(BLEの内部コアに初期FWと書く等)なので、あると大変便利です。

https://www.st.com/ja/development-tools/stm32cubeprog.html

愚痴 STM32Cubeで名前が一定なのは良いが、Windowsのスタートメニューで検索するとき、"STM32Cube"まで全部一緒なので、Programmerだけ立ち上げたいとき困るので、ショートカットフォルダとか作ることをオススメする

新規作成する順番

ここが大きく変わった所です。

今までは、

  1. CubeIDEで新規作成
  2. CubeIDEで生成されたCubeMXを広げてピン配置
  3. IDE内でCubeMXをジェネレートしてコンパイル
  4. IDE上で書き込み

みたいな流れでしたが、なんか新しくなって変化しました。

まぁ開発手法はや手順は人それぞれなので、慣れたら他の方法をルール化した方が良いです。

自分のオススメを乗せておきます

  1. 最初に、CubeMXを立ち上げ、マイコンの型番を指定し、プロジェクトを保存する。
  2. CubeMXを保存すると、ジェネレートができるようになります。
  3. ジェネレートすると、Projectを開くかと聞かれ、Projectを開くとCubeIDEが起動
  4. CubeIDEがCubeMXを保存したプロジェクトに環境とリンカーを読み込む
  5. CubeIDEでコンパイルも書き込みも出来る
  6. 変更したい際は、CubeMXからジェネレートして、念のためCubeIDEでCleanを行いビルドすると通りやすい

こんな感じ。CubeMXが最初に行う作業ってのが、今回変わった点です。
思えば、CubeIDEの時も、ソースより先にCubeMXでピン情報を設定してたので、これはこれで慣れれば良さそう。
そんなこんなでこの方法がオススメです。

ミスりやすい場所

この方法は悪くないですが、慣れるまでミスがあり困惑したので、その辺をまとめていきます。

CubeMXでIDEを選択出来る

CubeMXで、なんかジェネレートしたけどフォルダが今までと違う!!といった不具合があったが、新しいCubeMXでは、IDEの選択が出来るようになってました。

ProjectManagerの項目にToolchain/IDEの項目があり、プルダウンで選択ができます。

以下に抜粋した、対応しているIDEをまとめました。

  1. EWARM(IAR Embedded Workbench) /IAR Systems 有料
  2. MDK-ARM(Keil) /Arm Keil 一部有料
  3. STM32CubeIDE /STMicroelectronics 無料
  4. Makefile /GNU系(VSCode等) 無料
  5. CMake /CMake(VSCode等) 無料

デフォルトだと、EWARMだったりするので、新規作成時に都度STM32CubeIDE用に選択をするのを忘れずに。

また、忘れて一度ジェネレートしても、変更してもう一度ジェネレートすると綺麗に元に戻ることも確認できました。

CubeMXからCubeIDEを立ち上げる方法

CubeMXでGENERATE CODE(右上のアイコンの下)をクリックすると、ジェネレートが開始し、完了するとポップアップが表示され、フォルダーを開くか、プロジェクトを開くか、閉じるかの選択が迫られます。

前まで邪魔だなぁ~と思ってたんですが、このプロジェクトを開く[Open Project]をクリックすると、CubeIDEの環境がなくてもIDEが立ち上がり(もしくは既に立ち上がっていたらメニューに追加され)開発がスムーズにできる事が分かりました。

CubeIDEからCubeMXを立ち上げると多重に立ち上がる

さて、順調にCubeIDEで開発が進み、ちょっとCubeMX側を弄りたい!って時に、いつもの通り、CubeIDEからCubeMXの.iocをダブルクリックするじゃないですが。
設定変更、ジェネレート!までは良いのですが・・・CubeIDE上でCubeMXが何個も立ち上がってしまう事象があり、自分なんか3個も4個も立ち上がった状態になってしまいます

何が問題かって、どれが最新か分からない訳で、CubeMXを立ち上げたら終了させる!もしくは、何が最新か分からないので、既存のは終了させて、常に最新を起動する心持ちが大事だなぁって思うわけでして(その点は旧CubeIDEが好きだったかもしれないが、他のプロジェクトと比較ができなかったので、以外と今の仕組みも好きですよ)


宣伝

著者が代表の ArtifactNoise合同会社では、無理難題な様々な問題に技術コンサルタントを行っております。大手ソフトウェア会社、大手システム会社、大手製造業会社、大手インフラ会社等、大手企業様の開発領域における技術支援を担当しております、もし技術的なご支援をご検討されている企業様等がございましたら、ご紹介賜れましたら幸いに存じます。
北神雄太 kitagami(at)artifactnoise.com

Discussion