蓝牙接收字符串,并且将字符串通过标识符来截取到数组
望大神来看看,提出更好的代码!接收到的数据不连续,有时还接收到的不全!
//接收蓝牙数据,主要是字符串(t,001,123456;)
while(Serial.available()>0){
//截取三个字符串,储存到三个数组array
for(int i=0;i<3;i++)
array="";
for(int index=0;index<3;){
mychar=Serial.read();
if(mychar==';')
break;
else if(mychar==',')
index++;
else array+=mychar;
}
}
Serial.println(array); 你这说的不明白,代码也不完整 ,端口波特率是多少?
:loveliness:参看下这个吧
要先学会搜索。。自学的基础啊 569620972 发表于 2016-10-27 22:22
你这说的不明白,代码也不完整 ,端口波特率是多少?
就是将截取到的字符串通过串口监视器打印出来,求完美的代码!
String array;
char mychar;
void setup() {
Serial.begin(9600);
while(Serial.available()>0){
for(int i=0;i<3;i++)
array="";
for(int index=0;index<3;index++){
mychar=Serial.read();
if(mychar==';')
break;
else if(mychar==',')
index++;
else array+=mychar;
}
}
for(int i=0;i<3;i++)
Serial.println(array);
}
void loop(){
} 本帖最后由 exxew 于 2016-10-28 14:24 编辑
else if(mychar==',')
index++;
else array+=mychar;
这里的index++应该使用continue;否则循环上去后,for里面的index又会+1,所以array就会跳过去,没有数据。 exxew 发表于 2016-10-28 14:23
else if(mychar==',')
index++;
else array+=mychar;
我试试!先谢谢啦! TT_TGB 发表于 2016-10-28 18:21
我试试!先谢谢啦!
大神,还没解决!能修改一下代码吗?
页:
[1]