Console Serial IO con display OLED e seriale asincrona
Dependencies: mbed BufferedSerial AserialIOFuncLib SSD1306 TerminalPlusV2
Fork of SerialIO by
Console Serial IO con display OLED e seriale asincrona
Diff: main.cpp
- Revision:
- 0:dd5e64dd6caf
- Child:
- 1:e17894b4be01
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed May 20 15:26:33 2015 +0000 @@ -0,0 +1,55 @@ +#include "mbed.h" +DigitalOut myled1(LED1); //definisce myled +DigitalOut myled2(LED2); //definisce myled +InterruptIn mybutton(USER_BUTTON); +Serial pc(SERIAL_TX, SERIAL_RX); //Apertura della seriale 2 +//Serial pc(D8, D2); //Apertura della seriale 1 *opzionale vedi sotto + + +void pressed() +{ + pc.printf("\f"); + pc.printf("*** Reset Screen ***\n\r\n"); +} + +void banner() +{ + pc.printf("\f"); + pc.printf("----- Boot screen -----\n\r"); + pc.printf("--- Nucleo Scorda IO Test ---\n\r\n"); +} + + +int main() +{ + char c; // variabile che contiene il carattere appena ricevuto + char buffer[128]; // buffer di accumulo dei caratteri in sequenza + char i=0; // variabile di comodo per il conteggio dei caratteri + mybutton.fall(&pressed); + banner(); + + while(1) { + c=pc.getc(); //legge un carattere dalla seriale + if (c != 13) { + buffer[i]=c; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer + i++; // incrementa il puntatore al buffer + } else { + pc.printf("\n\r"); + buffer[i]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa + i=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa + if ((strcmp(buffer,"on")==0) // confronta la stringa ricevuta con le costanti accettate per il comando di accensione del led + ||(strcmp(buffer,"acceso")==0) //la funzione strcmp fa parte della libreria string standard del C e confronta 2 stringhe + ||(strcmp(buffer,"apriti sesamo")==0)) { //restituendo 0 se le stringhe sono uguali. + pc.printf("Led ACCESO \n\r"); + myled1 = 1; //Accende il led + } + if ((strcmp(buffer,"off")==0) //Confronto per i comandi di spegnimento del led + ||(strcmp(buffer,"spento")==0) + ||(strcmp(buffer,"chiuditi sesamo")==0)) { + pc.printf("Led SPENTO !\n\r"); + + myled1 = 0; // spegne il led + } + } + } +}