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:
- 3:2f32e34d820c
- Parent:
- 2:e7915367de83
- Child:
- 4:aa08e8d5ac27
--- a/main.cpp Thu May 21 11:59:14 2015 +0000 +++ b/main.cpp Thu May 21 15:34:30 2015 +0000 @@ -5,8 +5,9 @@ DigitalOut myled2(LED2); //definisce myled InterruptIn mybutton(USER_BUTTON); Serial pc(SERIAL_TX, SERIAL_RX); //Apertura della seriale 2 -Serial ardser(SERIAL_TX, SERIAL_RX); //Apertura della seriale 1 *opzionale vedi sotto +Serial ardser(PA_11, PA_12); //Apertura della seriale 1 *opzionale vedi sotto + int cont=0; void pressed() @@ -22,6 +23,12 @@ pc.printf("--- Nucleo Scorda IO Test ---\n\r\n"); } +void callback() { + // Note: you need to actually read from the serial to clear the RX interrupt + // ardser.printf("%d \n", cont++); + // myled2 = !myled2; +} + int main() { @@ -33,13 +40,12 @@ ardser.baud(SERIALARDBAUD); //pc.format(int bits=8, Parity parity=SerialBase::None, int stop_bits=1) - int cont=0; + mybutton.fall(&pressed); banner(); while(1) { - pc.printf("xxxxx\n\r"); - ardser.printf("Cont %d\n\r", cont++); + ardser.attach(&callback); 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 @@ -52,14 +58,14 @@ ||(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"); - ardser.printf("Led ACCESO \n\r"); + ardser.printf("\nLed 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"); - ardser.printf("Led SPENTO! \n\r"); + ardser.printf("\nLed SPENTO! \n\r"); myled1 = 0; // spegne il led }