PC - NUCLEO USB Polling Communication
Dependencies: mbed
Fork of Nucleo-COMM-Protocol by
PC-Comm-Polling.cpp@3:788597ccf179, 2018-05-07 (annotated)
- Committer:
- pinofal
- Date:
- Mon May 07 07:08:30 2018 +0000
- Revision:
- 3:788597ccf179
Amaldi 1 Exercise
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pinofal | 3:788597ccf179 | 1 | // Tested: NUCLEO-L476RG |
pinofal | 3:788597ccf179 | 2 | // Tested: NUCLEO-F207ZG |
pinofal | 3:788597ccf179 | 3 | #include "mbed.h" |
pinofal | 3:788597ccf179 | 4 | |
pinofal | 3:788597ccf179 | 5 | // genera un oggetto serial collegato al PC |
pinofal | 3:788597ccf179 | 6 | Serial pc(USBTX, USBRX); |
pinofal | 3:788597ccf179 | 7 | |
pinofal | 3:788597ccf179 | 8 | // genera un oggetto DigitalOut collegato al Led |
pinofal | 3:788597ccf179 | 9 | DigitalOut MyLed1(LED1); // verde |
pinofal | 3:788597ccf179 | 10 | DigitalOut MyLed2(LED2); // blu |
pinofal | 3:788597ccf179 | 11 | DigitalOut MyLed3(LED3); // rosso |
pinofal | 3:788597ccf179 | 12 | |
pinofal | 3:788597ccf179 | 13 | |
pinofal | 3:788597ccf179 | 14 | // indice per i cicli |
pinofal | 3:788597ccf179 | 15 | int nIndex; |
pinofal | 3:788597ccf179 | 16 | |
pinofal | 3:788597ccf179 | 17 | // carattere ricevuto dal PC |
pinofal | 3:788597ccf179 | 18 | char cReadChar; |
pinofal | 3:788597ccf179 | 19 | // carattere inviato al PC |
pinofal | 3:788597ccf179 | 20 | char cWriteChar; |
pinofal | 3:788597ccf179 | 21 | |
pinofal | 3:788597ccf179 | 22 | |
pinofal | 3:788597ccf179 | 23 | /********/ |
pinofal | 3:788597ccf179 | 24 | /* MAIN */ |
pinofal | 3:788597ccf179 | 25 | /********/ |
pinofal | 3:788597ccf179 | 26 | int main() |
pinofal | 3:788597ccf179 | 27 | { |
pinofal | 3:788597ccf179 | 28 | // configura velocità della comunicazione seriale su USB-VirtualCom e invia messaggio di benvenuto |
pinofal | 3:788597ccf179 | 29 | pc.baud(921600); //921600 bps |
pinofal | 3:788597ccf179 | 30 | |
pinofal | 3:788597ccf179 | 31 | // inizializza variabili |
pinofal | 3:788597ccf179 | 32 | cReadChar = '\0'; |
pinofal | 3:788597ccf179 | 33 | MyLed1=0; // spegni il Led1 |
pinofal | 3:788597ccf179 | 34 | MyLed2=0; // spegni il Led2 |
pinofal | 3:788597ccf179 | 35 | MyLed3=0; // spegni il Led3 |
pinofal | 3:788597ccf179 | 36 | |
pinofal | 3:788597ccf179 | 37 | |
pinofal | 3:788597ccf179 | 38 | pc.printf("\r\n> Hallo Amaldi Students - Start Exercise 1 \r\n"); |
pinofal | 3:788597ccf179 | 39 | |
pinofal | 3:788597ccf179 | 40 | /******* INIZIO ESEMPIO CON POLLING ***/ |
pinofal | 3:788597ccf179 | 41 | // ciclo infinito |
pinofal | 3:788597ccf179 | 42 | while(true) |
pinofal | 3:788597ccf179 | 43 | { |
pinofal | 3:788597ccf179 | 44 | // spegne il Led per 0.5 sec |
pinofal | 3:788597ccf179 | 45 | MyLed1 = 0; |
pinofal | 3:788597ccf179 | 46 | MyLed2 = 0; |
pinofal | 3:788597ccf179 | 47 | MyLed3 = 0; |
pinofal | 3:788597ccf179 | 48 | wait_ms(500); |
pinofal | 3:788597ccf179 | 49 | |
pinofal | 3:788597ccf179 | 50 | // verifica se è arrivato un carattere dal PC |
pinofal | 3:788597ccf179 | 51 | if(pc.readable()) |
pinofal | 3:788597ccf179 | 52 | { |
pinofal | 3:788597ccf179 | 53 | // cattura il carattere ricevuto |
pinofal | 3:788597ccf179 | 54 | cReadChar = pc.getc(); |
pinofal | 3:788597ccf179 | 55 | |
pinofal | 3:788597ccf179 | 56 | //accendi il Led per 500ms |
pinofal | 3:788597ccf179 | 57 | // Accende il Led solo se invio carattere corretto |
pinofal | 3:788597ccf179 | 58 | if(cReadChar == 'p') |
pinofal | 3:788597ccf179 | 59 | { |
pinofal | 3:788597ccf179 | 60 | MyLed1 = 1; |
pinofal | 3:788597ccf179 | 61 | MyLed2 = 1; |
pinofal | 3:788597ccf179 | 62 | MyLed3 = 1; |
pinofal | 3:788597ccf179 | 63 | wait_ms(500); |
pinofal | 3:788597ccf179 | 64 | } |
pinofal | 3:788597ccf179 | 65 | |
pinofal | 3:788597ccf179 | 66 | // restituisci messaggio al PC su carattere ricevuto |
pinofal | 3:788597ccf179 | 67 | cWriteChar = cReadChar+1; |
pinofal | 3:788597ccf179 | 68 | pc.printf("Rx Char= %c; Tx Char = %c\n\r", cReadChar, cWriteChar); |
pinofal | 3:788597ccf179 | 69 | } |
pinofal | 3:788597ccf179 | 70 | } |
pinofal | 3:788597ccf179 | 71 | |
pinofal | 3:788597ccf179 | 72 | /******* FINE ESEMPIO CON POLLING ***** */ |
pinofal | 3:788597ccf179 | 73 | |
pinofal | 3:788597ccf179 | 74 | } |