USB to UART bridge

Dependencies:   USBDevice mbed

Fork of XBee-ExplorerLite by Norimasa Okamoto

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 // main.cpp 2015/7/8
00002 // USB-to-UART-bridge
00003 #include "BaseUsbUartBridge.h"
00004 
00005 DigitalInOut uart_nRTS(p5);
00006 DigitalInOut uart_nDTR(p6);
00007 #if defined(TARGET_MCU_LPC11U35_501)
00008 DigitalOut led_uart(LED1);
00009 DigitalOut led_usb(LED2);
00010 DigitalOut led_rts(p18);
00011 DigitalOut led_dtr(p20);
00012 #else
00013 DigitalOut led_uart(LED1);
00014 DigitalOut led_usb(LED2);
00015 DigitalOut led_rts(LED3);
00016 DigitalOut led_dtr(LED4);
00017 #endif
00018 
00019 class USB_UART : public BaseUsbUartBridge {
00020 public:
00021     USB_UART(PinName tx, PinName rx) : BaseUsbUartBridge(tx, rx) {
00022         uart_nRTS.mode(PullUp);
00023         uart_nDTR.mode(PullUp);
00024         uart_nRTS.input();        
00025         uart_nDTR.input();
00026     }
00027     virtual void controlLineStateChanged(int rts, int dtr) {
00028         led_rts = rts;
00029         led_dtr = dtr;
00030         if (rts) {
00031             uart_nRTS.output();
00032             uart_nRTS = 0;
00033         } else {
00034             uart_nRTS.input();
00035         }
00036         if (dtr) {
00037             uart_nDTR.output();
00038             uart_nDTR = 0;
00039         } else {
00040             uart_nDTR.input();
00041         }
00042     }
00043     virtual void monitor(src_t src, uint8_t c) {
00044         switch(src) {
00045             case _UART: led_uart = !led_uart; break;
00046             case _USB: led_usb = !led_usb; break;
00047         }
00048     }
00049 } usb_uart(UART_TX, UART_RX);
00050 
00051 int main() {
00052     while(1) {
00053         usb_uart.poll();
00054     }
00055 }