6 years, 4 months ago.

シリアル通信のボーレート変更

つい半月前にmbedを始めた初心者です。

TeraTermなどでシリアル通信をする際のボーレートはどこで変更を行うのでしょうか? 初めてmbedからシリアル通信した際に文字化けしていたので、適当にボーレートをいじって9600bpsにした時点で上手く表示できたため以降その速度を利用していますがもっと速くしたい場合にどこを変更すれば良いか探しても分からず困っています。 ソフトウェアシリアルと思しきSerialクラスを利用したやり方は沢山検索に引っかかるのですが・・・

ご存知の方ご教示頂ければ幸いです。

1 Answer

6 years, 4 months ago.

デフォルトの通信速度は、9600bpsになっています。

プログラムから変更する場合は、Serialクラスのbaud()メソッドを使うか、コンストラクタの引数で指定します。

USBTX, USBRX(Mbedの標準入出力)のインスタンスに使用すると、Serialクラスではないprintf (std::printf)にも適用されます。

#include "mbed.h"

DigitalOut led1(LED1, 0);
Serial pc(USBTX, USBRX, 115200);

int main() {
    int count = 0;
    pc.baud(38400);
    pc.printf("test proram start.\n");
    while(1) {
        led1 = !led1;
        wait(0.5);
        printf("count = %d\n", count++);
    }
}

Accepted Answer

早速ご回答ありがとうございます! ボーレート変更できました。

posted by Yuichi Kawamura 01 Dec 2017