Defer the reading from and printing to the Serial port, to the global event queue.

main.cpp

Committer:
AnnaBridge
Date:
2017-11-10
Revision:
0:3a7d1a0a9b0b

File content as of revision 0:3a7d1a0a9b0b:

#include "mbed.h"

DigitalOut led1(LED1);
DigitalOut led2(LED2);

UARTSerial pc(USBTX, USBRX);

void callback_ex() {
    while (1) {
        char c;
        if (pc.read(&c, 1) != 1) {
            break;
        }
        printf("%c\n", c);
        led2 = !led2;
    }
}

int main() {
    pc.set_blocking(false);
    pc.sigio(mbed::mbed_event_queue()->event(callback_ex));

    while (1) {
        led1 = !led1;
        wait(0.5);
    }
}