craig Flanagan
/
Nucleo_blink_SERIAL_1_FOR_QUESTION
Serial Question
main.cpp@0:7229d855a74e, 2017-08-23 (annotated)
- Committer:
- craigflanagan
- Date:
- Wed Aug 23 22:00:28 2017 +0000
- Revision:
- 0:7229d855a74e
try this
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
craigflanagan | 0:7229d855a74e | 1 | #include "mbed.h" |
craigflanagan | 0:7229d855a74e | 2 | |
craigflanagan | 0:7229d855a74e | 3 | Serial dialog(PB_6, PB_7); |
craigflanagan | 0:7229d855a74e | 4 | Serial pcc(USBTX, USBRX); |
craigflanagan | 0:7229d855a74e | 5 | DigitalOut myled(LED1); |
craigflanagan | 0:7229d855a74e | 6 | |
craigflanagan | 0:7229d855a74e | 7 | char ch; |
craigflanagan | 0:7229d855a74e | 8 | const int PACKET_SIZE = 3; |
craigflanagan | 0:7229d855a74e | 9 | char dialog_RxBuf[PACKET_SIZE]; |
craigflanagan | 0:7229d855a74e | 10 | volatile int dialog_RxLen = 0; |
craigflanagan | 0:7229d855a74e | 11 | int index = 0; |
craigflanagan | 0:7229d855a74e | 12 | |
craigflanagan | 0:7229d855a74e | 13 | void dialog_Rx(void) |
craigflanagan | 0:7229d855a74e | 14 | { |
craigflanagan | 0:7229d855a74e | 15 | wait(.4); |
craigflanagan | 0:7229d855a74e | 16 | |
craigflanagan | 0:7229d855a74e | 17 | if(dialog.readable()) |
craigflanagan | 0:7229d855a74e | 18 | { |
craigflanagan | 0:7229d855a74e | 19 | char c = dialog.getc(); |
craigflanagan | 0:7229d855a74e | 20 | |
craigflanagan | 0:7229d855a74e | 21 | switch(c) |
craigflanagan | 0:7229d855a74e | 22 | { |
craigflanagan | 0:7229d855a74e | 23 | case '*': |
craigflanagan | 0:7229d855a74e | 24 | do |
craigflanagan | 0:7229d855a74e | 25 | { |
craigflanagan | 0:7229d855a74e | 26 | pcc.printf("\r\n stuck in this do loop..."); |
craigflanagan | 0:7229d855a74e | 27 | if (dialog.readable()) // NOTE: NOT MAKING IT INTO THIS "IF" STATMENT |
craigflanagan | 0:7229d855a74e | 28 | { |
craigflanagan | 0:7229d855a74e | 29 | ch = dialog.getc(); // read it |
craigflanagan | 0:7229d855a74e | 30 | if (index < PACKET_SIZE) // to avoid buffer overflow |
craigflanagan | 0:7229d855a74e | 31 | dialog_RxBuf[index++]=ch; // put it into the value array and increment the index |
craigflanagan | 0:7229d855a74e | 32 | pcc.printf("\r\n Did it make it in here?"); |
craigflanagan | 0:7229d855a74e | 33 | } |
craigflanagan | 0:7229d855a74e | 34 | } while (ch!='\n'); |
craigflanagan | 0:7229d855a74e | 35 | break; |
craigflanagan | 0:7229d855a74e | 36 | default: |
craigflanagan | 0:7229d855a74e | 37 | pcc.putc(c); |
craigflanagan | 0:7229d855a74e | 38 | break; |
craigflanagan | 0:7229d855a74e | 39 | } |
craigflanagan | 0:7229d855a74e | 40 | } |
craigflanagan | 0:7229d855a74e | 41 | |
craigflanagan | 0:7229d855a74e | 42 | } |
craigflanagan | 0:7229d855a74e | 43 | |
craigflanagan | 0:7229d855a74e | 44 | |
craigflanagan | 0:7229d855a74e | 45 | |
craigflanagan | 0:7229d855a74e | 46 | int main() |
craigflanagan | 0:7229d855a74e | 47 | { |
craigflanagan | 0:7229d855a74e | 48 | dialog.baud(9600); |
craigflanagan | 0:7229d855a74e | 49 | pcc.baud(9600); |
craigflanagan | 0:7229d855a74e | 50 | dialog.attach(&dialog_Rx); // Attach UART receive interrupt |
craigflanagan | 0:7229d855a74e | 51 | |
craigflanagan | 0:7229d855a74e | 52 | |
craigflanagan | 0:7229d855a74e | 53 | __disable_irq(); |
craigflanagan | 0:7229d855a74e | 54 | |
craigflanagan | 0:7229d855a74e | 55 | dialog.puts("*12\n"); // Put in a string in the UART buffer |
craigflanagan | 0:7229d855a74e | 56 | wait(1); |
craigflanagan | 0:7229d855a74e | 57 | |
craigflanagan | 0:7229d855a74e | 58 | __enable_irq(); |
craigflanagan | 0:7229d855a74e | 59 | |
craigflanagan | 0:7229d855a74e | 60 | myled = 0; |
craigflanagan | 0:7229d855a74e | 61 | wait(0.5); |
craigflanagan | 0:7229d855a74e | 62 | myled = 1; |
craigflanagan | 0:7229d855a74e | 63 | wait(0.5); |
craigflanagan | 0:7229d855a74e | 64 | } |
craigflanagan | 0:7229d855a74e | 65 |