Console Serial IO con display OLED e seriale asincrona

Dependencies:   mbed BufferedSerial AserialIOFuncLib SSD1306 TerminalPlusV2

Fork of SerialIO by Max Scordamaglia

Console Serial IO con display OLED e seriale asincrona

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
             }