mbedFRDM-K64Fでシリアル通信を行う.
USB経由でのシリアル通信を行うためにはドライバーのインストールが必要です.
1.シリアル通信を行うためのドライバーをダウンロードして,インストールします.
https://developer.mbed.org/handbook/Windows-serial-configuration
インストールが完了すると,COMポートとして認識されます.
COMポートの確認方法は以下の記事を参照してください.
http://jp3cyc-jpn.sakura.ne.jp/blog/archives/14
2.シリアルの関数を宣言
詳細はhttps://developer.mbed.org/users/okini3939/notebook/Serial_jp/
1 |
Serial pc(USBTX, USBRX); |
USB経由のシリアルなので,USBTX,USBRXとします.
3.初期の宣言をします.
1 2 |
pc.baud(9600); // 9600bps pc.format(8,Serial::None,1); |
バウンドレートは一般的な9600bps
シリアル通信のビット数8ビット,パリティーなし,ストップビット1ビットに設定しました.(Teratermの初期設定に合わせた)
4. 出力
1 |
pc.printf("Hello\r\n"); |
これは先ほど作成したタイマー割り込み関数の中に入れていますが,メインループでも大丈夫です.
\rで左にカーソルが戻り,\nで改行をしています.
\nだけだと,文字が階段状に出力されます.
5.プログラムを書き込み,ターミナルソフトを起動して,Helloが出力されると成功です.
ターミナルソフトはTera termがおすすめです.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include "mbed.h" Ticker dynamicInt; Serial pc(USBTX, USBRX); DigitalOut gpo(D0); void dynamic(void) { gpo = !gpo; // toggle pin pc.printf("Hello\r\n"); } int main() { // init dynamicInt.attach_us(&dynamic,100000); pc.baud(9600); // 9600bps pc.format(8,Serial::None,1); while (true) { wait(0.2f); } } |