Capturing string from serial port

Dependencies:   mbed

Committer:
kuldipmaharjan
Date:
Wed Jan 08 00:26:07 2014 +0000
Revision:
0:d5aa0b91d111
capturing sting from serial ports

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kuldipmaharjan 0:d5aa0b91d111 1 //Author: Kuldip Maharjan
kuldipmaharjan 0:d5aa0b91d111 2 //Email : kuldipmaharjan@gmail.com
kuldipmaharjan 0:d5aa0b91d111 3 //Anyone can use this code if it helps in their projects or
kuldipmaharjan 0:d5aa0b91d111 4 //for learning programing in mbed besides for commercial purposes
kuldipmaharjan 0:d5aa0b91d111 5
kuldipmaharjan 0:d5aa0b91d111 6 //capturing string from serial ports
kuldipmaharjan 0:d5aa0b91d111 7
kuldipmaharjan 0:d5aa0b91d111 8 #include "mbed.h"
kuldipmaharjan 0:d5aa0b91d111 9 #include "stdio.h"
kuldipmaharjan 0:d5aa0b91d111 10 #include "string.h"
kuldipmaharjan 0:d5aa0b91d111 11
kuldipmaharjan 0:d5aa0b91d111 12 char* string_capture (char* result_string);
kuldipmaharjan 0:d5aa0b91d111 13
kuldipmaharjan 0:d5aa0b91d111 14 Serial pc(USBTX, USBRX); // tx, rx
kuldipmaharjan 0:d5aa0b91d111 15 Serial s1(p9,p10); // tx, rx
kuldipmaharjan 0:d5aa0b91d111 16 Serial s2(p28,p27); // tx, rx
kuldipmaharjan 0:d5aa0b91d111 17
kuldipmaharjan 0:d5aa0b91d111 18 int main()
kuldipmaharjan 0:d5aa0b91d111 19 {
kuldipmaharjan 0:d5aa0b91d111 20 char str[1024]= "";
kuldipmaharjan 0:d5aa0b91d111 21 pc.baud(9600);
kuldipmaharjan 0:d5aa0b91d111 22 s1.baud(9600);
kuldipmaharjan 0:d5aa0b91d111 23 s2.baud(9600);
kuldipmaharjan 0:d5aa0b91d111 24 while(1) {
kuldipmaharjan 0:d5aa0b91d111 25 pc.printf("putting $ to indicate beginning of string \n");
kuldipmaharjan 0:d5aa0b91d111 26 s1.putc('$');
kuldipmaharjan 0:d5aa0b91d111 27 if (s2.getc() == '$') {
kuldipmaharjan 0:d5aa0b91d111 28 pc.printf("beginning capturing string \n");
kuldipmaharjan 0:d5aa0b91d111 29 //s1.putc('3');
kuldipmaharjan 0:d5aa0b91d111 30 pc.printf("\n the returned string is %s",string_capture(str));
kuldipmaharjan 0:d5aa0b91d111 31 }
kuldipmaharjan 0:d5aa0b91d111 32 wait(2);
kuldipmaharjan 0:d5aa0b91d111 33 }
kuldipmaharjan 0:d5aa0b91d111 34 }
kuldipmaharjan 0:d5aa0b91d111 35
kuldipmaharjan 0:d5aa0b91d111 36 char* string_capture (char* result_string)
kuldipmaharjan 0:d5aa0b91d111 37 {
kuldipmaharjan 0:d5aa0b91d111 38 char str1[25]= "";
kuldipmaharjan 0:d5aa0b91d111 39 do
kuldipmaharjan 0:d5aa0b91d111 40 {
kuldipmaharjan 0:d5aa0b91d111 41 s1.putc(pc.getc()); //here we can get character from pc terminal
kuldipmaharjan 0:d5aa0b91d111 42 str1[0]=s2.getc();
kuldipmaharjan 0:d5aa0b91d111 43 strcat(result_string,str1);
kuldipmaharjan 0:d5aa0b91d111 44 //while (!pc.readable()) {}; //gets stuck here until it get smth from pc
kuldipmaharjan 0:d5aa0b91d111 45 wait(0.1);
kuldipmaharjan 0:d5aa0b91d111 46 } while (str1[0] != '!');
kuldipmaharjan 0:d5aa0b91d111 47 return result_string;
kuldipmaharjan 0:d5aa0b91d111 48 }
kuldipmaharjan 0:d5aa0b91d111 49
kuldipmaharjan 0:d5aa0b91d111 50