template for serial protocol

Dependencies:   mbed

Committer:
Hotboards
Date:
Wed Jun 22 18:19:35 2016 +0000
Revision:
1:0fec28dd7cd1
Parent:
0:ed82bc2dec29
second release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Hotboards 0:ed82bc2dec29 1 #include "mbed.h"
Hotboards 0:ed82bc2dec29 2
Hotboards 0:ed82bc2dec29 3 Serial device(PC_10,PC_11); // Puerto serial para comunicar con modulo WIFI
Hotboards 0:ed82bc2dec29 4 Serial pc(USBTX,USBRX); // Puerto serial para comunicar con la pc
Hotboards 0:ed82bc2dec29 5
Hotboards 0:ed82bc2dec29 6 int rxCount = 0;
Hotboards 0:ed82bc2dec29 7 int rcvFlag = 0;
Hotboards 0:ed82bc2dec29 8 char rxbuff[64];
Hotboards 0:ed82bc2dec29 9
Hotboards 0:ed82bc2dec29 10 DigitalOut led(LED1);
Hotboards 0:ed82bc2dec29 11
Hotboards 0:ed82bc2dec29 12 void sISR()
Hotboards 0:ed82bc2dec29 13 {
Hotboards 0:ed82bc2dec29 14 //while (device.readable())
Hotboards 0:ed82bc2dec29 15 //{
Hotboards 0:ed82bc2dec29 16 rxbuff[rxCount] = device.getc(); // dato recibido se almacena en rxbuff
Hotboards 0:ed82bc2dec29 17 rxCount++;
Hotboards 0:ed82bc2dec29 18 //}
Hotboards 0:ed82bc2dec29 19
Hotboards 0:ed82bc2dec29 20 if(rxCount >=6)
Hotboards 0:ed82bc2dec29 21 {
Hotboards 0:ed82bc2dec29 22
Hotboards 0:ed82bc2dec29 23 if((rxbuff[0]== 0x53)&&(rxbuff[1]==0x54))
Hotboards 0:ed82bc2dec29 24 {
Hotboards 0:ed82bc2dec29 25 rcvFlag = 1;
Hotboards 0:ed82bc2dec29 26 }
Hotboards 0:ed82bc2dec29 27 else
Hotboards 0:ed82bc2dec29 28 {
Hotboards 0:ed82bc2dec29 29 memset(rxbuff, '\0', sizeof(rxbuff));
Hotboards 0:ed82bc2dec29 30 rxCount = 0;
Hotboards 0:ed82bc2dec29 31 }
Hotboards 0:ed82bc2dec29 32 }
Hotboards 0:ed82bc2dec29 33 }
Hotboards 0:ed82bc2dec29 34
Hotboards 0:ed82bc2dec29 35 int main() {
Hotboards 0:ed82bc2dec29 36
Hotboards 0:ed82bc2dec29 37 device.baud(9600); // configuramos ambos puertos a 115200 bps
Hotboards 0:ed82bc2dec29 38 pc.baud(115200);
Hotboards 0:ed82bc2dec29 39
Hotboards 0:ed82bc2dec29 40 device.attach(&sISR); // habilita recepcion por interrupcion serial
Hotboards 0:ed82bc2dec29 41
Hotboards 0:ed82bc2dec29 42 while(1)
Hotboards 0:ed82bc2dec29 43
Hotboards 0:ed82bc2dec29 44 {
Hotboards 0:ed82bc2dec29 45
Hotboards 0:ed82bc2dec29 46 if(rcvFlag ==1)
Hotboards 0:ed82bc2dec29 47 {
Hotboards 0:ed82bc2dec29 48 led = !led;
Hotboards 0:ed82bc2dec29 49 device.attach(NULL);
Hotboards 0:ed82bc2dec29 50
Hotboards 0:ed82bc2dec29 51 switch(rxbuff[2])
Hotboards 0:ed82bc2dec29 52 {
Hotboards 0:ed82bc2dec29 53 case 1: // leds
Hotboards 0:ed82bc2dec29 54 {
Hotboards 0:ed82bc2dec29 55
Hotboards 0:ed82bc2dec29 56 }
Hotboards 0:ed82bc2dec29 57 break;
Hotboards 0:ed82bc2dec29 58
Hotboards 0:ed82bc2dec29 59 case 2:
Hotboards 0:ed82bc2dec29 60 {
Hotboards 0:ed82bc2dec29 61
Hotboards 0:ed82bc2dec29 62 }
Hotboards 0:ed82bc2dec29 63 break;
Hotboards 0:ed82bc2dec29 64
Hotboards 0:ed82bc2dec29 65
Hotboards 0:ed82bc2dec29 66 case 3: //slider
Hotboards 0:ed82bc2dec29 67 {
Hotboards 1:0fec28dd7cd1 68
Hotboards 1:0fec28dd7cd1 69 int d1,d2,d3,val;
Hotboards 0:ed82bc2dec29 70
Hotboards 1:0fec28dd7cd1 71 d1 = rxbuff[3]-48;
Hotboards 1:0fec28dd7cd1 72 d2 = rxbuff[4]-48;
Hotboards 1:0fec28dd7cd1 73 d3 = rxbuff[5]-48;
Hotboards 1:0fec28dd7cd1 74
Hotboards 1:0fec28dd7cd1 75 val = (d1*100)+(d2*10)+d3;
Hotboards 1:0fec28dd7cd1 76
Hotboards 1:0fec28dd7cd1 77
Hotboards 1:0fec28dd7cd1 78
Hotboards 1:0fec28dd7cd1 79 pc.printf("%d\r\n",val);
Hotboards 0:ed82bc2dec29 80 }
Hotboards 0:ed82bc2dec29 81 break;
Hotboards 0:ed82bc2dec29 82
Hotboards 0:ed82bc2dec29 83
Hotboards 0:ed82bc2dec29 84 default:break;
Hotboards 0:ed82bc2dec29 85 }
Hotboards 0:ed82bc2dec29 86
Hotboards 0:ed82bc2dec29 87
Hotboards 0:ed82bc2dec29 88
Hotboards 0:ed82bc2dec29 89
Hotboards 0:ed82bc2dec29 90 memset(rxbuff, '\0', sizeof(rxbuff));
Hotboards 0:ed82bc2dec29 91 rxCount = 0;
Hotboards 0:ed82bc2dec29 92 rcvFlag = 0;
Hotboards 0:ed82bc2dec29 93 device.attach(&sISR); // habilita recepcion por interrupcion serial
Hotboards 0:ed82bc2dec29 94
Hotboards 0:ed82bc2dec29 95 }
Hotboards 0:ed82bc2dec29 96
Hotboards 0:ed82bc2dec29 97 }
Hotboards 0:ed82bc2dec29 98 }