mbed(LPC11U35) で USB シリアル通信

mbed(LPC11U35) で USB シリアル通信

mbed LPC11U35 で USB シリアル通信をしたのでメモ

USB CDC(Communications Device Class)と呼ばれる
USB上でデバイス間のデータのやりとりを行うための通信規格を利用して実現している

環境

準備

  1. TeraTerm のインストール
  2. mbed ワークスペースから USBDevice ライブラリをインポートする
  3. コーディングし mbed に書き込む
    • コードは以下を参照
  4. mbed をリセット
  5. OS が USB ポートを認識することを確認する
  6. TeraTerm を起動
  7. 新しい接続は シリアル を選択
    • COMx ポートとかになっているはず
  8. TeraTerm から文字列を送信できるようにする
    • 「設定」タブ
    • 端末
    • 「ローカルエコー」にチェック
    • 「OK」
  9. TeraTerm から文字列を入力し、mbed からエコーバックされれば成功

コード

端末から文字列を受け取ってエコーバックするプログラム

#include "mbed.h"
#include "USBSerial.h"
DigitalOut myled(LED1);
USBSerial serial;
int main() {
    uint8_t buf[128];
    while(1) {
        myled = 1; // LED is ON
        wait(0.5); // 200 ms
        myled = 0; // LED is OFF
        serial.scanf("%s", buf);
        serial.printf("recv: %s\n\r", buf);
        wait(0.5); // 1 sec
    }
}

出典 : https://os.mbed.com/handbook/USBSerial