シリアルポートへの書き込み速度

LocalFileSystemがやたら遅かったのでついでにシリアルポートへの書き込み速度を見てみました。

115200bpsの場合

#include "mbed.h"

DigitalOut myled(LED1);
DigitalOut statePin(p21);
Timer timer;

Serial pc(USBTX, USBRX);
Serial s1(p9, p10);
int main() {
    int count;
    int begin, end;
    pc.baud(57600);
    s1.baud(115200);
    
    timer.start();
    while(1) {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
        statePin = !statePin;
        begin = timer.read_us();
        s1.printf("Hello World\n");
        end = timer.read_us();
        statePin = !statePin;
        pc.printf("%d us\n",end-begin);
    }
}

/media/uploads/takeshikodaira/serial115200.png

書き込み後、シリアルのパルス列が終わる前に処理が戻ってきたので、通信速度が遅くても同様に動くかとおもいきや(9,600bps)、、

/media/uploads/takeshikodaira/serial9600.png

通信速度と同じように時間がかかるようでした。


Please log in to post comments.