STM32を「mbed compiler」を使ってLチカ
こんにちは。今回、STM32を使う機会があったため使用方法をまとめていきたいと思います。
とりあえず簡単に使用することができるオフライン環境からやってみたいと思います。
マイコン | STM32F303K8 |
ブラウザ | Google Chrome |
OS | Windows10 |
ブラウザはChrome、PCはWindowsを使っていますが、おそらくEdgeやFireFox、ubuntuやMacでも同様のことができると思います。
mbedコンパイラはSTMをサポートしているため、これを使用してプログラムを動作させることができます。
まず、STM32F303K8とPCをUSBケーブルを使用して接続します。するとエクスプローラ上でこのように表示されます。
また、このとき緑のLED(基板上にLD3と書かれている)が点滅します。
次にmbed compilerの方の設定に移ります。
まずこちらのサイトにアクセスをしてください。右上のCompilerをクリックします。
会員登録を済ませていない人は会員登録をする必要があるので、登録してください。
このような画面までたどり着くことができると思います。
そして右上のデバイス未選択の部分をクリックします。すでにmbed Compilerを使用したことがある人は別のマイコンが指定されているかもしれません。
クリック後、このような画面が出てきます。左下のAdd Boardをクリックします。
そして使用したいマイコンを選択します。今回は上記の通り、STM32F303K8なので、NUCLEO-F303K8を選択します。
切り替わったページ先の右側に+Add to your Mbed Compilerと書かれたところがあるので、そこをクリックします。するとmbed Compierで選択したマイコンボードが使えるようになります。
そしたらSelect Platformをクリックします。
左上の新規から新しいプログラムを選択します。
とりあえず設定はこのままで問題ありません。
するとmain.cppにひな形が書き込まれたものがでてきます。見てわかる通りC++言語で書かれており、LED1が点滅するプログラムが書かれています。
そしたら、とりあえずコンパイルをしてみましょう。
すると「Nucleo_blink_led.NUCLEO_F303K8.bin」をダウンロードすることができますので、それを直接STM32F303K8に保存してください。
すると基板上のLD1と書かれたところのLEDが緑と橙に点滅し、最終的に緑色になったら書き込み完了です。プログラムが反映されているかと思います。
ちなみにプログラム3行目に
DigitalOut myled(LED1);
と書かれていますが、上の図から
DigitalOut myled(PB_3);
でも問題ないことが分かりますね。
この説明から察することができるかと思いますが、GPIOを弄りたい場合は上の図のPA_xやPB_xの位置を確認し、そのままプログラムに打ち込めばよいということになります。
例えば、基板にD12と表記されているポートから5V出力したい場合、DigitalOut myled(PB_4);と表記すれば問題ないわけですね。
myledという書き方だと分からなくなるので
DigitalOut output1(PB_3);
という書き方にしてoutput1 = 1;や、output = 0;など書いて出力するかしないかを決めることができます。
ブレッドボードにさすとこのようになります。(LD1はPCと接続し直すと赤色になります。次回データシートと照らし合わせて紹介します)
mbed compierを使用したGPIOの操作は以上になります。
次回、オフライン環境で書き込む方法、Tera Termを使用してシリアル通信を行う方法を紹介したいと思います。