見出し画像

STM32マイコンをArduinoIDEで動かしてみる

だいぶ前に購入して放置していたNucleo Board STM32F303K8を動かしてみることにしました。
数あるNucleo Boardの中でSTM32F303K8を選んだ理由は、搭載されているマイコンが手はんだで実装できそうな0.8mmピッチLQFP32パッケージで、且つ秋月電子通商で単品販売されているところです。そのうち使い方が解ってきたらArduino Pro/Pro miniのATmega328Pと同じように自分で基板を作って使えるかなという目論見です。
今回はひとまず、Lチカ(LED点滅)とHello Worldです。

開発環境をどうするか

STMマイコンを使ったことがないので、とりあえずなるべく手軽に動かしてみたいと思います。
Nucleo Boardのプログラム開発環境というとお手軽なのはMbedだと思っていたのですが、インストールしようとGoogleで検索したら、2026年7月に終了(EoL)するという情報が見つかってしまいました。
使い方を覚えてもすぐに使えなくなっては仕方ないので、MbedはあきらめてArduinoIDEを使ってみることにしました。
STM32用の統合開発環境としてSTM32CubeIDEというのがあるのですが、複雑そうなのでまた今度試してみようと思います。

今回使用するのは、STM32duinoです。
https://github.com/stm32duino

このページを読みながらいろいろインストールしていきます。
・ArduinoIDEインストール
・ArduinoIDEにSTM32ターゲットを追加
・STM32CubeProgrammerをインストール
という順番になります。

開発環境をインストールする

まずはパソコンにArduinoIDEをインストールします。Arduinoはときどき使っているので、すでにインストール済みでしたが、ここからダウンロードできます。
https://www.arduino.cc/en/software
今回はVer.は2.3.2でした。

次にArduinoIDEにSTM32ターゲットを追加します。
ArduinoIDEで「File」→「Preferences」→「Additional boards manager URLs:」に「https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json」を追加します。

今回追加したのは2行目。1行目は以前から使っているM5Stack。

「BOARDS MANAGER」で「STM32 MCU based boards」をインストールします。「stm」とか「stm32」と検索すると出てきます。

最後にSTM32マイコンへのプログラムの書き込みをするために、パソコンにSTM32CubeProgrammerをインストールします。インストールするとArduinoIDEが自動的にSTM32CubeProgrammerを使ってくれます。
STM32CubeProgrammerはSTMicroelectronicsのWebサイトでMySTに登録・ログインするとダウンロードできます。
https://www.st.com/ja/development-tools/stm32cubeprog.html#get-software
インストール途中で併せてデバイスドライバもインストールされます。
これで、開発環境が整いました。

LチカとHello World.

Nucleo Board STM32F303K8をUSBケーブルでパソコンに接続し、ArduinoIDEの「Tools」で、
Board: ”Nucleo-32”
Port: ”COM9 (Discoverry, Eval, Nucleo-32, Nucleo-64, Nucleo-144)
Board part number: ”Nucleo F303K8”
を選びます。(COM番号はそれぞれのパソコン次第です。)

例として下のようなプログラムを書き、「→」(Upload)ボタンを押すと、コンパイルと書き込みが実行されます。Serial Monitorを開いてボーレートを38400に設定すると、「Hello World.」が表示できました。基板上ではLEDの点滅も確認できました。

まとめ

LチカとHello Worldができるようになりました。シリアル通信は使えないのでは?と心配していたのですが、使えたので一安心。STM32は8bit AVRよりだいぶ速いはずなので、動作が速いArduino Pro/Pro miniを手に入れた感じです。あとは、8bit AVRと同じくらいまで使い方を覚えられるかどうか。


この記事が気に入ったらサポートをしてみませんか?