プログラム製作日記

世の中にないプログラムをつくれたらよいなと思いながらプログラムをしていくブログです

ARMマイコンプログラミング(2020年 今さらSTM32ディスカバリ事始め)

 

ARMマイコンを使った電子工作をしたくなったので、大分昔に買ったSTM32ディスカバリの本と基板を引っ張り出して、2020年に手軽に手に入る環境で動かしてみたので、その記録をまとめました。当時買ったのが以下の本とマイコンです。

 

 

 

 

登録簡単なTrueStudioとST-LINK utilityを自分のパソコンにインストールしました。

 

・True Studio

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

 

・STM32 ST-LINK utility

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

 

TrueStudioに関しては、後継となる開発環境も出ているようなのですが、STM32 value line Discoveryのプロジェクトを作った時に、この基板にデフォルトで入っているUSER BUTTONを押したときにLEDの点滅方法が変わるというプログラムのもととなるコードが最初からmain.c内に入っていたので、こちらを選びました。

 

また、ST-LINKはバージョンがあり、STM32 value line Discoveryはもっとも初期のバージョンで、後継ソフト(ST-LINK/V2以降のみ対応)では対応していないというのがわかったのも、TrueStudioを選んだ理由です。

⇒この点に関して、TrueStudioでビルドしてマイコンに最初に書き込む際、メッセージがでたのでマイコンに搭載されているST-LINKのファームウェアウェアをアップデートしたのですが、なぜか書き込みができないことが判明(このアップデートがよくなかったのか)したので、結局、マイコンへのプログラムの書き込みはST-LINK Utilityを利用しました。

 

①メニューのファイル→C Projectを選択し、次に立ち上がった画面で適当なプロジェクト名を設定し、Embedded C Projectを選択します。

f:id:tut2020aaa:20210117110934p:plain

f:id:tut2020aaa:20210117111116p:plain

 

②次にターゲットマイコンの選択画面になるので、STM32VL_Discoveryを選択します。

f:id:tut2020aaa:20210117111308p:plain

これであとは特に設定の変更はせず、次へボタンを押していって、最後に終了ボタンを押すと、プロジェクトが作成されます。

 

③main.cのmain関数に無限ループする以下のwhile文があります。

それを以下のように書き換えました。

while (1)

{
 i++;
#ifdef USE_LED
 STM_EVAL_LEDToggle(LED1);

#elif defined USE_STM32_DISCOVERY
 if(0 == STM32vldiscovery_PBGetState(BUTTON_USER))
 {

    //LED4の点灯
  STM32vldiscovery_LEDToggle(LED4);
 }
 else
 {

  //LED4の消灯
  STM32vldiscovery_LEDOff(LED4);
 }
#endif
}

 

これで、USER BUTTONを押してないときはLED4は点灯、押しているときは消灯します。

 

④*1を参照してプロジェクト設定でビルド時にhexファイルが出力されるようにして、*2を参照してST-LINK Utilityを使ってプログラムの書き込みを実行しました。

 

結果は以下の通り、青色のLED(LED4)が、USER BUTTONを押していない状態で点灯するようになりました(写真の赤丸している部分がLED4)。

f:id:tut2020aaa:20210117114334p:plain

USER BUTTONを押すと、LED4は消灯します。

f:id:tut2020aaa:20210117114519p:plain

 

 


<参照>

*1 hexファイルの出力の設定は以下のページを参照しました。

gsmcustomeffects.hatenablog.com

 

*2 STM32 value line DiscoveryはST-LINKの基盤が搭載されているので、USBケーブルで基板をつなげれば専用のデバッガ/プログラマは不要なのですが、hexタイプのファイルをST-LINK utilityを使て書き込まないといけないので、以下のページを参照しました。

tri-s.world.coocan.jp

 

 ランキングに参加してます。

よかったらクリックをお願いします。

にほんブログ村 IT技術ブログ Tipsへ
にほんブログ村