This program turns the mbed device into a serial passthrough. This is useful for imitating a FTDI chip. Any commands sent from the PC to the mbed board will be forwarded on to the serial device attached, and any commands coming from the serial device will be forwarded to the PC. Make sure to change the speeds to match your serial device.
Diff: main.cpp
- Revision:
- 4:ba9100d52e48
- Parent:
- 3:0393f97fd8cf
- Child:
- 5:96cb82af9996
--- a/main.cpp Mon Apr 27 21:23:36 2015 +0000 +++ b/main.cpp Mon Apr 27 21:32:55 2015 +0000 @@ -1,37 +1,37 @@ #include "mbed.h" -RawSerial pc(USBTX, USBRX); // computer to mbed board -RawSerial esp(D1, D0); // mbed board to target board +// Program to use the mbed as a serial bridge +// +RawSerial pc(USBTX, USBRX); // tx, rx +RawSerial dev(D1, D0); // tx, rx -int -main() +void send() { - pc.baud(115200); - esp.baud(115200); - wait(0.1); - pc.printf("\r\n########### ready ###########\r\n"); - esp.printf("AT+RST\r\n"); - while(1) { - if(pc.readable()) { - char c = pc.getc(); - //pc.putc(c); // echo character back to computer for sanity - //if(c == '\r'){ -// esp.printf("\r\n"); -// } -// else{ - esp.putc(c); -// } - } - if(esp.readable()) { - char c = esp.getc(); - //if(c == '\n'){ -// pc.printf("\\n"); -// } -// if(c == '\r'){ -// pc.printf("\\r"); -// } - - pc.putc(c); - } + while (pc.readable()) { + dev.putc(pc.getc()); } } + +void recv() +{ + pc.putc(dev.getc()); +} + +int main() +{ + char c; + + // PC serial + pc.baud(9600); + pc.attach(send, Serial::RxIrq); + + // Device serial + dev.baud(9600); + + wait(0.1); + dev.printf("AT+RST\r\n"); // Reset esp device + while(1) { + c = dev.getc(); + pc.putc(c); + } +}