Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@1:862d95c7ca2c, 2019-07-24 (annotated)
- 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?
User | Revision | Line number | New 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 | } |