2015年1月4日日曜日

STM32F401で遊んでみる(3)

5.サンプルプログラムを実行してみた

IDE上の「Compile」をクリックしてみるとバイナリが生成されるようで、binファイルの保存場所を聞いてきます。
ここでは、直接USBマスストレージに見えている場所(/media/NUCLEO)を指定してみました。これで勝手にターゲットボード側にプログラムが書き込まれるようで、書き込み中はデバッガ側のLEDが赤と緑に何度かチラチラ変わるようです。
指定すると、緑LEDの点滅は止まり、赤LEDが点灯するのみになってしまいました。

6.ソースコードを修正する

ワークスペース左側のツリーの中から main.cpp をクリックすると、ソースが表示されました。ソースコードによれば、LED1が200ms点灯、1s消灯の繰り返しになりそうな感じです・・・が、実際にはそのようには動いていません。
ボードのユーザーマニュアルにある回路図を見ると、
  • ターゲットボード上の赤LED(LD3)は電源供給で点灯
  • ターゲットボード上の緑LED(LD2)はJP6を介してArduinoコネクタの10pin幅の方の6pin(D13)へ接続
となっています。一方で、端子一覧でも
  • LED1はD13と同じPA_5に割り当て
となっているので、これでLEDは点灯してもおかしくないはずです。
そこで、LED1の定義が怪しいと睨んで探してみたのですがみつかりません。そこで試しにソースコードの3行目の
DigitalOut myled(LED1);
をもっともCPU自体のポート割り当て記述に近いと思われる
DigitalOut myled(PA_5);
と書き換えてコンパイルしなおしてみたところ、無事にLチカが始まりました!

0 件のコメント: