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

Committer:
MaxScorda
Date:
Sun May 31 22:00:40 2015 +0000
Revision:
7:f57abb3f0d3f
Parent:
6:f8865b6d592a
Child:
8:3f1d8c55b3a0
Avanzamento parsing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MaxScorda 0:dd5e64dd6caf 1 #include "mbed.h"
MaxScorda 1:e17894b4be01 2 #include "config.h"
MaxScorda 4:aa08e8d5ac27 3 #include "IOFuncLib.h"
MaxScorda 1:e17894b4be01 4
MaxScorda 7:f57abb3f0d3f 5
MaxScorda 7:f57abb3f0d3f 6
MaxScorda 4:aa08e8d5ac27 7 //init standard
MaxScorda 0:dd5e64dd6caf 8 InterruptIn mybutton(USER_BUTTON);
MaxScorda 0:dd5e64dd6caf 9 Serial pc(SERIAL_TX, SERIAL_RX); //Apertura della seriale 2
MaxScorda 3:2f32e34d820c 10 Serial ardser(PA_11, PA_12); //Apertura della seriale 1 *opzionale vedi sotto
MaxScorda 4:aa08e8d5ac27 11 //init funzioni personal lib
MaxScorda 4:aa08e8d5ac27 12 Flasher led(LED1);
MaxScorda 5:4d547f4c1278 13 Screen sc(&pc);
MaxScorda 7:f57abb3f0d3f 14 genFunctions fnz;
MaxScorda 7:f57abb3f0d3f 15
MaxScorda 4:aa08e8d5ac27 16 //var
MaxScorda 4:aa08e8d5ac27 17 int cont=0;
MaxScorda 1:e17894b4be01 18
MaxScorda 4:aa08e8d5ac27 19 //------------ Funzioni -------------
MaxScorda 0:dd5e64dd6caf 20
MaxScorda 7:f57abb3f0d3f 21 #include "Functions.h"
MaxScorda 3:2f32e34d820c 22
MaxScorda 0:dd5e64dd6caf 23
MaxScorda 7:f57abb3f0d3f 24
MaxScorda 4:aa08e8d5ac27 25 //-------------- fine funzioni
MaxScorda 4:aa08e8d5ac27 26
MaxScorda 0:dd5e64dd6caf 27 int main()
MaxScorda 0:dd5e64dd6caf 28 {
MaxScorda 0:dd5e64dd6caf 29 char c; // variabile che contiene il carattere appena ricevuto
MaxScorda 0:dd5e64dd6caf 30 char buffer[128]; // buffer di accumulo dei caratteri in sequenza
MaxScorda 0:dd5e64dd6caf 31 char i=0; // variabile di comodo per il conteggio dei caratteri
MaxScorda 1:e17894b4be01 32 //Serial config
MaxScorda 1:e17894b4be01 33 pc.baud(SERIAL1BAUD);
MaxScorda 1:e17894b4be01 34 ardser.baud(SERIALARDBAUD);
MaxScorda 4:aa08e8d5ac27 35 //pc.format(int bits=8, Parity parity=SerialBase::None, int stop_bits=1)
MaxScorda 3:2f32e34d820c 36
MaxScorda 0:dd5e64dd6caf 37 mybutton.fall(&pressed);
MaxScorda 6:f8865b6d592a 38 sc.emptyFrame();
MaxScorda 5:4d547f4c1278 39 sc.banner();
MaxScorda 0:dd5e64dd6caf 40
MaxScorda 0:dd5e64dd6caf 41 while(1) {
MaxScorda 3:2f32e34d820c 42 ardser.attach(&callback);
MaxScorda 0:dd5e64dd6caf 43 c=pc.getc(); //legge un carattere dalla seriale
MaxScorda 0:dd5e64dd6caf 44 if (c != 13) {
MaxScorda 0:dd5e64dd6caf 45 buffer[i]=c; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer
MaxScorda 0:dd5e64dd6caf 46 i++; // incrementa il puntatore al buffer
MaxScorda 4:aa08e8d5ac27 47 led.flash(2);
MaxScorda 0:dd5e64dd6caf 48 } else {
MaxScorda 0:dd5e64dd6caf 49 pc.printf("\n\r");
MaxScorda 0:dd5e64dd6caf 50 buffer[i]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa
MaxScorda 0:dd5e64dd6caf 51 i=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa
MaxScorda 6:f8865b6d592a 52 ardser.printf("\ncmd Ready\n\r");
MaxScorda 5:4d547f4c1278 53 parser(buffer);
MaxScorda 0:dd5e64dd6caf 54 }
MaxScorda 0:dd5e64dd6caf 55 }
MaxScorda 0:dd5e64dd6caf 56 }
MaxScorda 6:f8865b6d592a 57
MaxScorda 6:f8865b6d592a 58