Ram Bambo / Mbed 2 deprecated LPCXpresso11U68_USBSerial

Dependencies:   mbed

Committer:
rambambo
Date:
Wed Jul 24 12:12:14 2019 +0000
Revision:
1:862d95c7ca2c
Parent:
0:1ec32b38f724
Quick and dirty program to receive keystrokes and send text via virtual serial port, it also flashes the green led with 1 millisecond pulses as life indicator. Unfortunally the mbed lib sends an error via serial when PwmOut is used

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rambambo 1:862d95c7ca2c 1 /* Quick and dirty program to receive keystrokes and send text via virtual
rambambo 1:862d95c7ca2c 2 * serial port, it also flashes the green led with 1 millisecond pulses as
rambambo 1:862d95c7ca2c 3 * life indicator
rambambo 1:862d95c7ca2c 4 *
rambambo 1:862d95c7ca2c 5 * Unfortunally the mbed lib sends an error via serial when PwmOut is used
rambambo 1:862d95c7ca2c 6 *
rambambo 1:862d95c7ca2c 7 * This program has been derived from
rambambo 1:862d95c7ca2c 8 * https://os.mbed.com/users/Bongjun/code/LPC11U68_USBSerial/
rambambo 1:862d95c7ca2c 9 *
rambambo 1:862d95c7ca2c 10 */
rambambo 1:862d95c7ca2c 11
Bongjun 0:1ec32b38f724 12 #include "mbed.h"
Bongjun 0:1ec32b38f724 13
rambambo 1:862d95c7ca2c 14 DigitalOut LED_rd(LED1);
rambambo 1:862d95c7ca2c 15 DigitalOut LED_gn(LED2);
rambambo 1:862d95c7ca2c 16 DigitalOut LED_bl(LED3);
rambambo 1:862d95c7ca2c 17 /*
rambambo 1:862d95c7ca2c 18 // PwmOut: mbed lib raises an error: no available SCT, even LED pins provide PWM
rambambo 1:862d95c7ca2c 19 PwmOut LED_rd(LED1);
rambambo 1:862d95c7ca2c 20 PwmOut LED_gn(LED2);
rambambo 1:862d95c7ca2c 21 PwmOut LED_bl(LED3);
rambambo 1:862d95c7ca2c 22 float brightness_LED_rd = 0.8;
rambambo 1:862d95c7ca2c 23 float brightness_LED_gn = 0.4;
rambambo 1:862d95c7ca2c 24 float brightness_LED_bl = 0.2;
rambambo 1:862d95c7ca2c 25 */
Bongjun 0:1ec32b38f724 26
Bongjun 0:1ec32b38f724 27 //Virtual serial port over USB
Bongjun 0:1ec32b38f724 28 Serial pc(USBTX, USBRX);
Bongjun 0:1ec32b38f724 29
rambambo 1:862d95c7ca2c 30 volatile uint8_t buf[] = {'\0', '\0'}; // buf[1]: string null terminator
rambambo 1:862d95c7ca2c 31
rambambo 1:862d95c7ca2c 32 void onCharReceived() // fills character buffer using rx interrupt
rambambo 1:862d95c7ca2c 33 {
rambambo 1:862d95c7ca2c 34 buf[0] = pc.getc();
rambambo 1:862d95c7ca2c 35 }
rambambo 1:862d95c7ca2c 36
Bongjun 0:1ec32b38f724 37 int main()
Bongjun 0:1ec32b38f724 38 {
rambambo 1:862d95c7ca2c 39 LED_rd = LED_gn = LED_bl = 1; // LEDs off
rambambo 1:862d95c7ca2c 40 pc.baud(115200); // from default = 9600
rambambo 1:862d95c7ca2c 41 pc.attach(&onCharReceived);
rambambo 1:862d95c7ca2c 42 pc.printf("\r\n\n\n##### LPCXpresso11U68_USBSerial #####\r\n\r\nPress any key at the PC keyboard!\r\n\r\n");
Bongjun 0:1ec32b38f724 43
rambambo 1:862d95c7ca2c 44 while(1) {
rambambo 1:862d95c7ca2c 45 //uint32_t counter = 0; // Debug only
rambambo 1:862d95c7ca2c 46 // pc.printf("%8d\r\n", counter++); // Debug only
Bongjun 0:1ec32b38f724 47
rambambo 1:862d95c7ca2c 48 switch(buf[0])
rambambo 1:862d95c7ca2c 49 {
rambambo 1:862d95c7ca2c 50 case '\0':
rambambo 1:862d95c7ca2c 51 break;
rambambo 1:862d95c7ca2c 52 case 'a':
rambambo 1:862d95c7ca2c 53 pc.printf("recv char IS THE EXPECTED 'a' = 0x%.2x\r\n", buf[0]);
rambambo 1:862d95c7ca2c 54 break;
rambambo 1:862d95c7ca2c 55 case 'b':
rambambo 1:862d95c7ca2c 56 pc.printf("recv char IS THE EXPECTED 'b' = 0x%.2x\r\n", buf[0]);
rambambo 1:862d95c7ca2c 57 break;
rambambo 1:862d95c7ca2c 58 default:
rambambo 1:862d95c7ca2c 59 pc.printf("recv char is not expected: ");
rambambo 1:862d95c7ca2c 60 if (buf[0]<33)
rambambo 1:862d95c7ca2c 61 pc.printf("0x%.2x\r\n", buf[0]); // hex code, when non-printable char
rambambo 1:862d95c7ca2c 62 else
rambambo 1:862d95c7ca2c 63 pc.printf("%s\r\n", buf);
rambambo 1:862d95c7ca2c 64 break;
rambambo 1:862d95c7ca2c 65 }
rambambo 1:862d95c7ca2c 66 buf[0] = '\0'; // reset character buffer
rambambo 1:862d95c7ca2c 67
rambambo 1:862d95c7ca2c 68 LED_gn = 0; wait_ms(1); // just one millisecond due to high brightness of green
rambambo 1:862d95c7ca2c 69 LED_gn = 1; wait_ms(299);
Bongjun 0:1ec32b38f724 70 }
Bongjun 0:1ec32b38f724 71 }