Andy Zucker / Mbed 2 deprecated serial_communication1

Dependencies:   mbed

Fork of serial_communication by Andy Zucker

Committer:
Andy8800
Date:
Sun Feb 21 14:10:38 2016 +0000
Revision:
0:15ca75f6e1a0
Child:
1:32c006ad8eaf
For testing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Andy8800 0:15ca75f6e1a0 1 #include "mbed.h"
Andy8800 0:15ca75f6e1a0 2 #include <string>
Andy8800 0:15ca75f6e1a0 3
Andy8800 0:15ca75f6e1a0 4 DigitalOut myled(LED1);
Andy8800 0:15ca75f6e1a0 5 Serial pc(USBTX, USBRX);
Andy8800 0:15ca75f6e1a0 6
Andy8800 0:15ca75f6e1a0 7 //***********************************************************************************
Andy8800 0:15ca75f6e1a0 8 //***Set up the Serial communication to your PC**************************************
Andy8800 0:15ca75f6e1a0 9 //***Type some Keys and when pressing enter, mbed will send some analyzed strings****
Andy8800 0:15ca75f6e1a0 10 //***********************************************************************************
Andy8800 0:15ca75f6e1a0 11
Andy8800 0:15ca75f6e1a0 12 int main()
Andy8800 0:15ca75f6e1a0 13 {
Andy8800 0:15ca75f6e1a0 14
Andy8800 0:15ca75f6e1a0 15 char ch[40];
Andy8800 0:15ca75f6e1a0 16 int count=0;
Andy8800 0:15ca75f6e1a0 17 char buf1[30];
Andy8800 0:15ca75f6e1a0 18 char buf2[30];
Andy8800 0:15ca75f6e1a0 19
Andy8800 0:15ca75f6e1a0 20 while(1)
Andy8800 0:15ca75f6e1a0 21 {
Andy8800 0:15ca75f6e1a0 22
Andy8800 0:15ca75f6e1a0 23 if(pc.readable())
Andy8800 0:15ca75f6e1a0 24 {
Andy8800 0:15ca75f6e1a0 25
Andy8800 0:15ca75f6e1a0 26
Andy8800 0:15ca75f6e1a0 27 //store char in char array (ch)
Andy8800 0:15ca75f6e1a0 28 ch[count]= pc.getc();
Andy8800 0:15ca75f6e1a0 29 //print out to PC for better visibility/response
Andy8800 0:15ca75f6e1a0 30 pc.putc(ch[count]);
Andy8800 0:15ca75f6e1a0 31
Andy8800 0:15ca75f6e1a0 32 //if receiving ENTER - print out everything and reset counter
Andy8800 0:15ca75f6e1a0 33 if(ch[count] == '\r')
Andy8800 0:15ca75f6e1a0 34 {
Andy8800 0:15ca75f6e1a0 35 pc.printf("\n\rCharacters received: %d \n\r",count);
Andy8800 0:15ca75f6e1a0 36 pc.printf("First three characters: %c%c%c \n\r",ch[0],ch[1],ch[2]);
Andy8800 0:15ca75f6e1a0 37 pc.printf("Second three characters: %c%c%c \n\r",ch[3],ch[4],ch[5]);
Andy8800 0:15ca75f6e1a0 38
Andy8800 0:15ca75f6e1a0 39
Andy8800 0:15ca75f6e1a0 40 //devide ch array into two separate char arrays
Andy8800 0:15ca75f6e1a0 41 sprintf(buf1,"%c%c%c",ch[0],ch[1],ch[2]);
Andy8800 0:15ca75f6e1a0 42 sprintf(buf2,"%c%c%c",ch[3],ch[4],ch[5]);
Andy8800 0:15ca75f6e1a0 43
Andy8800 0:15ca75f6e1a0 44 //***compare the two new char arrays***************************************************
Andy8800 0:15ca75f6e1a0 45 if(strcmp(buf1,buf2) == 0)
Andy8800 0:15ca75f6e1a0 46 {
Andy8800 0:15ca75f6e1a0 47 pc.printf("First and second three characters are identicaly: %s \n\n\r",buf1);
Andy8800 0:15ca75f6e1a0 48 }
Andy8800 0:15ca75f6e1a0 49 else
Andy8800 0:15ca75f6e1a0 50 {
Andy8800 0:15ca75f6e1a0 51 pc.printf("First and second three characters are not identicaly \n\n\r");
Andy8800 0:15ca75f6e1a0 52 }
Andy8800 0:15ca75f6e1a0 53 //****************************************************************************************
Andy8800 0:15ca75f6e1a0 54
Andy8800 0:15ca75f6e1a0 55 count=0;
Andy8800 0:15ca75f6e1a0 56 }
Andy8800 0:15ca75f6e1a0 57
Andy8800 0:15ca75f6e1a0 58
Andy8800 0:15ca75f6e1a0 59
Andy8800 0:15ca75f6e1a0 60
Andy8800 0:15ca75f6e1a0 61 //else count up and store all received char's in the array
Andy8800 0:15ca75f6e1a0 62 else
Andy8800 0:15ca75f6e1a0 63 {
Andy8800 0:15ca75f6e1a0 64 count++;
Andy8800 0:15ca75f6e1a0 65 }
Andy8800 0:15ca75f6e1a0 66
Andy8800 0:15ca75f6e1a0 67 }
Andy8800 0:15ca75f6e1a0 68
Andy8800 0:15ca75f6e1a0 69
Andy8800 0:15ca75f6e1a0 70
Andy8800 0:15ca75f6e1a0 71 }
Andy8800 0:15ca75f6e1a0 72 }