2016年10月22日土曜日

[電子工作]mbed(STM32F401RE)を試す

以前買ったF401REを使ってLEDの点滅とシリアル通信をしてみました。

○準備
 必要なもの
  ・PC
  ・ブラウザ
  ・F401RE(mbed)
  ・USBケーブル(TypeA---MiniB)
 F401REをPCに繋ぐともともと入っているプログラムによりLEDが点滅します。また、PCからはF401REがUSBメモリに見えます。中に入っている"MBED.HTM"をブラウザで開くと、mbedアカウントのLoginページに行けます。まだアカウントを持っていなければ"Sginup"、"No, I haven't created account before."の順に進めばアカウントの作成ページにいけます。アカウントを作成すると、ページの右に"Open mbed conpiler"のボタンがあり、それを押すとmbedのオンラインIDEが使えます。

○LEDの点滅
 オンラインIDEを最初に開くと、プログラムの名前などを決めるのウィンドウのようなものが出てきますが、名前を分かりやすいものにし、"OK"を押しました。その後、そこに書かれているソースを下記のように書き換えるとLEDが点滅します。
#include "mbed.h"
DigitalOut myled(LED1);
int main() {
    while(1) {
        //------------ON
        myled=1;
        wait(1);
        //------------OFF
        myled=0;
        wait(1);
    }
}
これをオンラインIDEでコンパイルすると、バイナリファイルがダウンロードされ、これをUSBメモリとして認識されているF401REに切り取り+コピーし、F401REの電源を入れなおせば、F401REでプログラムが動きます。

○シリアル通信
 上記のソースを下記のように変えると、LEDのOn/Offの情報をシリアル通信でPCに伝えられるようになります。
#include "mbed.h"
Serial pc(SERIAL_TX, SERIAL_RX);
DigitalOut myled(LED1);
int main() {  
    while(1) {
        //------------ON
        myled=1;
        pc.printf("ON \r");
        wait(1);
        //------------OFF
        myled=0;
        pc.printf("OFF \r");
        wait(1);
    }
}
シリアル通信はWindowsならTeraTerm、Debian系Linuxならsetserialとcuにより出来ます。
LED点滅とシリアル通信


0 件のコメント:

コメントを投稿