如何判断字符串已经读完?先谢谢了。
char bb = (char)mySerial.read();if((bb != '\r') && (bb != '\n') ) Str += bb;
如何判断 bb内的字符除了'\r'和'\n' 已经全部读出来了? 本帖最后由 Ansifa 于 2015-2-26 17:47 编辑
楼主思路错了,读取不以结束符而停止,而是要读清串口的FIFO为止。
然后取出到结束符之前的文字。下面代码,区别在于while(Serial.available()>0),读取部分和楼主基本一样不用详看
String inputString = "";
boolean stringComplete = false;
.........
void loop()
{
while(Serial.available()>0)
{
char inChar = (char)Serial.read();
inputString += inChar;
if (inChar == '\n' || inChar == '\r')
{
stringComplete = true;
}
delay(2);
}
if(stringComplete == true)
{
//inputString就是输入的字符串
}
} Ansifa 发表于 2015-2-26 17:46 static/image/common/back.gif
楼主思路错了,读取不以结束符而停止,而是要读清串口的FIFO为止。
然后取出到结束符之前的文字。下面代码 ...
if (inChar == '\n' || inChar == '\r')就是判断string 结束的标志吗?
wdb_9955 发表于 2015-2-26 22:46 static/image/common/back.gif
if (inChar == '\n' || inChar == '\r')就是判断string 结束的标志吗?
是的,结束符随便遇到一个就结束了,后面的全部不要。
比如收到
"DEWGYFUGEWUIGHUT\r\n\r\nfrbhyeqgfrig"
遇到第一个\r就结束了,后面的全部忽略,得到
"DEWGYFUGEWUIGHUT“
页:
[1]