A USB to UART bridge

Dependencies:   USBDevice BufferedSerial mbed

main.cpp

Committer:
yihui
Date:
2013-12-25
Revision:
2:427b69ad737c
Parent:
1:efa9f62a12c4
Child:
3:2b4d2284bab0

File content as of revision 2:427b69ad737c:

/**
 * USB to UART Bridge
 */
 
#include "mbed.h"
#include "USBSerial.h"

Serial uart(USBTX, USBRX);
USBSerial pc;
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);

// Called by ISR
void settingsChanged(int baud, int bits, int parity, int stop)
{
    const Serial::Parity parityTable[] = {Serial::None, Serial::Odd, Serial::Even, Serial::Forced0, Serial::Forced1};
    
    
    led1 = 1;
    if (stop != 2) {
        stop = 1;   // stop bit(s) = 1 or 1.5
    }
    uart.baud(baud);
    uart.format(bits, parityTable[parity], stop);
    led1 = 0;
}

int main()
{
    pc.attach(settingsChanged);
    
    while (1) {
        while (uart.readable()) {
            led2 = 1;
            pc.putc(uart.getc());
            led2 = 0;
        }
        
        while (pc.readable()) {
            led3 = 1;
            uart.putc(pc.getc());
            led3 = 0;
        }
    }
}