A program for LPC11U68 UART1 testing
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 DigitalOut greenLed(LED_GREEN); 00004 DigitalOut redLed(LED_RED); 00005 00006 Serial pc(USBTX, USBRX); 00007 Serial uart1(P1_8, P1_2); 00008 00009 uint8_t buffer[256]; 00010 uint16_t bufferIndex = 0; 00011 uint8_t data; 00012 uint32_t ledToggleTime; 00013 00014 int main() 00015 { 00016 pc.baud(115200); 00017 pc.printf("\r\n\r\nProgram started\r\nType some text and press ENTER ...\r\n"); 00018 00019 memset(buffer, 0, sizeof(buffer)); 00020 redLed = 1; 00021 ledToggleTime = 0; 00022 00023 uart1.baud(115200); 00024 pc.printf("Type text > "); // show the prompt 00025 00026 for(;;) 00027 { 00028 while (uart1.readable() > 0) 00029 { 00030 pc.printf("\r\nreadable(): %d\r\n", uart1.readable()); 00031 00032 data = uart1.getc(); 00033 pc.printf("\r\n<<< [%02X]\r\n", data); 00034 } 00035 00036 while (pc.readable() > 0) 00037 { 00038 if (bufferIndex < sizeof(buffer)) 00039 { 00040 redLed = 1; // turn off the red led 00041 data = pc.getc(); 00042 00043 // wait for ENTER 00044 if ((data == 0x0d) || (data == 0x0a)) 00045 { 00046 if (bufferIndex > 0) 00047 { 00048 pc.printf("\r\nGot it: %s\r\n", buffer); 00049 00050 pc.printf("\r\n>>> %s\r\n", buffer); 00051 uart1.printf("%s", buffer); 00052 00053 memset(buffer, 0, sizeof(buffer)); 00054 bufferIndex = 0; 00055 } 00056 00057 pc.printf("\r\nType text > "); // show the prompt 00058 } 00059 else 00060 { 00061 buffer[bufferIndex++] = data; 00062 pc.putc(data); 00063 } 00064 } 00065 else 00066 { 00067 redLed = 0; // turn on the red led 00068 } 00069 } 00070 00071 // toggle green led every 500 ms 00072 if ((us_ticker_read() - ledToggleTime)/1000 >= 500) 00073 { 00074 ledToggleTime = us_ticker_read(); 00075 greenLed = !greenLed; 00076 } 00077 } 00078 }
Generated on Sun Jul 17 2022 21:08:32 by 1.7.2