A program for LPC11U68 UART1 testing
main.cpp
- Committer:
- jurgis
- Date:
- 2014-06-05
- Revision:
- 0:aa765ec85271
File content as of revision 0:aa765ec85271:
#include "mbed.h" DigitalOut greenLed(LED_GREEN); DigitalOut redLed(LED_RED); Serial pc(USBTX, USBRX); Serial uart1(P1_8, P1_2); uint8_t buffer[256]; uint16_t bufferIndex = 0; uint8_t data; uint32_t ledToggleTime; int main() { pc.baud(115200); pc.printf("\r\n\r\nProgram started\r\nType some text and press ENTER ...\r\n"); memset(buffer, 0, sizeof(buffer)); redLed = 1; ledToggleTime = 0; uart1.baud(115200); pc.printf("Type text > "); // show the prompt for(;;) { while (uart1.readable() > 0) { pc.printf("\r\nreadable(): %d\r\n", uart1.readable()); data = uart1.getc(); pc.printf("\r\n<<< [%02X]\r\n", data); } while (pc.readable() > 0) { if (bufferIndex < sizeof(buffer)) { redLed = 1; // turn off the red led data = pc.getc(); // wait for ENTER if ((data == 0x0d) || (data == 0x0a)) { if (bufferIndex > 0) { pc.printf("\r\nGot it: %s\r\n", buffer); pc.printf("\r\n>>> %s\r\n", buffer); uart1.printf("%s", buffer); memset(buffer, 0, sizeof(buffer)); bufferIndex = 0; } pc.printf("\r\nType text > "); // show the prompt } else { buffer[bufferIndex++] = data; pc.putc(data); } } else { redLed = 0; // turn on the red led } } // toggle green led every 500 ms if ((us_ticker_read() - ledToggleTime)/1000 >= 500) { ledToggleTime = us_ticker_read(); greenLed = !greenLed; } } }