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

Committer:
AnnaBridge
Date:
Fri Nov 10 16:03:09 2017 +0000
Revision:
0:3a7d1a0a9b0b
Additional example for UARTSerial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 0:3a7d1a0a9b0b 1 #include "mbed.h"
AnnaBridge 0:3a7d1a0a9b0b 2
AnnaBridge 0:3a7d1a0a9b0b 3 DigitalOut led1(LED1);
AnnaBridge 0:3a7d1a0a9b0b 4 DigitalOut led2(LED2);
AnnaBridge 0:3a7d1a0a9b0b 5
AnnaBridge 0:3a7d1a0a9b0b 6 UARTSerial pc(USBTX, USBRX);
AnnaBridge 0:3a7d1a0a9b0b 7
AnnaBridge 0:3a7d1a0a9b0b 8 void callback_ex() {
AnnaBridge 0:3a7d1a0a9b0b 9 while (1) {
AnnaBridge 0:3a7d1a0a9b0b 10 char c;
AnnaBridge 0:3a7d1a0a9b0b 11 if (pc.read(&c, 1) != 1) {
AnnaBridge 0:3a7d1a0a9b0b 12 break;
AnnaBridge 0:3a7d1a0a9b0b 13 }
AnnaBridge 0:3a7d1a0a9b0b 14 printf("%c\n", c);
AnnaBridge 0:3a7d1a0a9b0b 15 led2 = !led2;
AnnaBridge 0:3a7d1a0a9b0b 16 }
AnnaBridge 0:3a7d1a0a9b0b 17 }
AnnaBridge 0:3a7d1a0a9b0b 18
AnnaBridge 0:3a7d1a0a9b0b 19 int main() {
AnnaBridge 0:3a7d1a0a9b0b 20 pc.set_blocking(false);
AnnaBridge 0:3a7d1a0a9b0b 21 pc.sigio(mbed::mbed_event_queue()->event(callback_ex));
AnnaBridge 0:3a7d1a0a9b0b 22
AnnaBridge 0:3a7d1a0a9b0b 23 while (1) {
AnnaBridge 0:3a7d1a0a9b0b 24 led1 = !led1;
AnnaBridge 0:3a7d1a0a9b0b 25 wait(0.5);
AnnaBridge 0:3a7d1a0a9b0b 26 }
AnnaBridge 0:3a7d1a0a9b0b 27 }
AnnaBridge 0:3a7d1a0a9b0b 28