読者です 読者をやめる 読者になる 読者になる

DIY Wave Lab.

空いた時間でコツコツと。空かなくてもつくる。

STM32F4 Discovery 開発環境構築 備忘録

 最近、高性能なマイコンが欲しくなったためにSTM32シリーズを真面目に使おうとしている。具体的にはSTM32シリーズのMBED環境から脱出してSTMicro推奨の環境でプログラミングをしたいと考えている。

 DAC内蔵のマイコンを探していたところ、たまたま手持ちのマイコン(STM32F4 Discovery)にDACが内蔵されていたため、今回は意地でもその機能を使おうとするのが目的である。

(DMAやホワイトノイズジェネレータもあるらしい。あら便利。)

 

 今回は以下の3項目を終えたところである。

1.開発環境のインストール

2.プログラムとビルド(Lチカ)

3.STM32F4本体への書き込み

4.気になった点

 

1.開発環境のインストール

開発環境としては System Workbench for STM32 を使用した。

STMicroのサイトでも紹介されているので、怪しいものではないはず。

マルチプラットフォームである点と、何よりインストールが簡単そうなのでこれに決定。

ダウンロードに際してはユーザ登録(メールアドレスとパスワード)が必要となるので注意されたし。

 インストールには別段難しい手順は必要ないが、インストーラの実行にはJRE( Java Runtime Environment )のver.7以上が必要となるため、予め導入しておく必要がある。

 また、今回はUbuntu14.04環境下でインストールを行ったが、64bit版のみ以下を実行しないとプログラムビルドの際にコンパイラが働かない。

 $ sudo apt-get install libc6:i386 lib32ncurses5 

2.プログラムとビルド

 プロジェクトの作成に関しては他所で詳しい解説があるため言及しないが、STMicro推奨だけあってDiscoveryはじめNucleoなど多くのマイコンボードに対応している。プロジェクト作成の時点でボードに必要なライブラリが読み込まれる。

 今回はLチカでプログラムとビルドを確認している。ソースは以下の通り


/*****************************************************/
//main.cpp

#include "stm32f4xx.h" #include "stm32f4_discovery.h" int main(void) { //ライブラリ読み込み HAL_Init(); //光らせるLEDをイニシャライズ BSP_LED_Init(LED3); //チカチカを無限に繰り返す for(;;) { //上で指定したLEDの状態をトグル BSP_LED_Toggle(LED3); //1000ms保持 HAL_Delay(1000); } }
/*****************************************************/

 たったこれだけである。

 ビルドに関しては、メニューバーの「Project」→「Build Project」で行う。(またはかなづちマーク)エラーがある場合はワークスペース下部の「Problems」や「Console」に表示される。

3.STM32F4本体への書き込み

 ビルドが終了したら「Project Explorer」から「プロジェクト名」を右クリックして「Debug As」 → 「Ac6 STM32 C/C++ Application」 を選択すると、マイコンへの転送が始まる。(LED1が赤・緑と点滅)

 一度上記の手順を踏むと、あとはメニューバー(アイコン)の再生ボタンから転送ができるようになる。

4.気になった点

 今回納得行かなかった点としては、ビルドの時点で

「HAL_Delay()」が認識されておらずエラーになる→デバッグしてみる→動作に問題なし、Delayが効いている

以上の流れである。

よく使ってるArduinoではエラーが出た時点でコンパイルがストップするので安心だったが...感覚的に少々気持ち悪い。いずれ解決するか慣れるかのどちらかを期待しておこう。

 

次はDACの仕様確認と実際の動作まで行う...つもり。

あと、ソースコードの載せ方も考えないと...。