トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

DIY/mbed/シリアル通信

Last-modified: 2015-05-05 (火) 20:19:51 (897d)
Top / DIY / mbed / シリアル通信

DIY/mbed


そろそろデバッグプリントが欲しい

です。
ちょっと調べてみると、mbed でも Arduino のように
PC で接続した状態でシリアル通信できるようなのでやってみます。

サンプル

mbed のテンプレートを見ていると "Display a message on PC using UART" という
まんまのサンプルがあるのでこれからプログラムを作ります。

  1. #include "mbed.h"
  2.  
  3. //------------------------------------
  4. // Hyperterminal configuration
  5. // 9600 bauds, 8-bit data, no parity
  6. //------------------------------------
  7.  
  8. Serial pc(SERIAL_TX, SERIAL_RX);
  9.  
  10. DigitalOut myled(LED1);
  11.  
  12. int main() {
  13.   int i = 1;
  14.   pc.printf("Hello World !\n");
  15.   while(1) { 
  16.       wait(1);
  17.       pc.printf("This program runs since %d seconds.\n", i++);
  18.       myled = !myled;
  19.   }
  20. }


なるほど、mbed docs で Serial クラス を見ると以下の感じになってました。

  1. Serial ( PinName tx,
  2.                 PinName rx,
  3.                 const char *  name = NULL
  4. )


tx と rx に使うピン突っ込めば終わりですね。
サンプルテンプレートでは SERIAL_TX, SERIAL_RX を代入してますが、
これは USB シリアル等価なのかな??

ドライバを入れよう

プログラムは無修正で行けそうなので、
あとは動かしてみるだけなのですが、デバイスマネージャみると Nucleo らしきデバイスに警告マークが。。
前に入れたときとは別のドライバが必要なのか。。

Nucleo の場合は こちら にある ST-LINK/V2 ドライバをダウンロード。
警告が出ているドライバ(私の場合2つあった、"ST-Link Debug" とか言う奴と、"不明なデバイス")でダウンロードして展開した場所を指定。

serial1.png


"ST Link Debug" は "STLink dongle" と変わり、
"不明なデバイス" は "STLink Virtual COM Port" となれば OK。たぶん。

動作確認

あとは追加されたポートに接続して動作確認です。
サンプルのコメントにあるように "9600bps/8bit/StopBit?=1/パリティなし" でトライ。

serial2.png


動いてますね。
あ、最初は出力するたびに右にずれていくので、
putty の設定で "Implicit CR in every LF" を有効にしてます。
これは LF のたびに CR を挿入するもので、それによりずれていくのを防いでます。

これでセンサの値も読めますね!


2015/05/05 : 1st


添付ファイル: fileserial2.png 1145件 [詳細] fileserial1.png 1128件 [詳細]