LIFE LOG(ここにはあなたのブログ名)

あつあつ備忘録

ソフトやハード、時にはメカの備忘録をまとめていきます

STM32を「mbed compiler」を使ってLチカ

こんにちは。今回、STM32を使う機会があったため使用方法をまとめていきたいと思います。

とりあえず簡単に使用することができるオフライン環境からやってみたいと思います。 

マイコン STM32F303K8
ブラウザ  Google Chrome
OS Windows10

ブラウザはChrome、PCはWindowsを使っていますが、おそらくEdgeやFireFoxubuntuMacでも同様のことができると思います。


mbedコンパイラはSTMをサポートしているため、これを使用してプログラムを動作させることができます。

 

まず、STM32F303K8とPCをUSBケーブルを使用して接続します。するとエクスプローラ上でこのように表示されます。

また、このとき緑のLED(基板上にLD3と書かれている)が点滅します。 

f:id:AtsuyaKoike:20180926132940p:plain

 

次にmbed compilerの方の設定に移ります。

 

os.mbed.com

 まずこちらのサイトにアクセスをしてください。右上のCompilerをクリックします。

 

f:id:AtsuyaKoike:20180926133550p:plain

会員登録を済ませていない人は会員登録をする必要があるので、登録してください。

 

 

f:id:AtsuyaKoike:20180926133830p:plain

 このような画面までたどり着くことができると思います。

 

f:id:AtsuyaKoike:20180927003234p:plain

そして右上のデバイス未選択の部分をクリックします。すでにmbed Compilerを使用したことがある人は別のマイコンが指定されているかもしれません。

f:id:AtsuyaKoike:20180927003412p:plain

 クリック後、このような画面が出てきます。左下のAdd Boardをクリックします。

f:id:AtsuyaKoike:20180927003451p:plain

 そして使用したいマイコンを選択します。今回は上記の通り、STM32F303K8なので、NUCLEO-F303K8を選択します。

 

f:id:AtsuyaKoike:20180927003546p:plain

切り替わったページ先の右側に+Add to your Mbed Compilerと書かれたところがあるので、そこをクリックします。するとmbed Compierで選択したマイコンボードが使えるようになります。

f:id:AtsuyaKoike:20180927003713p:plain

そしたらSelect Platformをクリックします。

f:id:AtsuyaKoike:20180927003748p:plain

左上の新規から新しいプログラムを選択します。

f:id:AtsuyaKoike:20180927003807p:plain

とりあえず設定はこのままで問題ありません。

f:id:AtsuyaKoike:20180927003828p:plain

するとmain.cppにひな形が書き込まれたものがでてきます。見てわかる通りC++言語で書かれており、LED1が点滅するプログラムが書かれています。

そしたら、とりあえずコンパイルをしてみましょう。

すると「Nucleo_blink_led.NUCLEO_F303K8.bin」をダウンロードすることができますので、それを直接STM32F303K8に保存してください。

すると基板上のLD1と書かれたところのLEDが緑と橙に点滅し、最終的に緑色になったら書き込み完了です。プログラムが反映されているかと思います。

 

 

/media/uploads/bcostm/nucleo_f303k8_2017_10_10.png

画像元:NUCLEO-F303K8 | Mbed

 

ちなみにプログラム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;など書いて出力するかしないかを決めることができます。

f:id:AtsuyaKoike:20180927005618j:plain

ブレッドボードにさすとこのようになります。(LD1はPCと接続し直すと赤色になります。次回データシートと照らし合わせて紹介します)

 

mbed compierを使用したGPIOの操作は以上になります。

次回、オフライン環境で書き込む方法、Tera Termを使用してシリアル通信を行う方法を紹介したいと思います。