求助保存字符串问题
本帖最后由 dreamlang123 于 2016-7-22 14:57 编辑求助保存字符串问题
我是想首先输入一个pwR=123
然后让他在哪个位置等待输入pwW=A#12345/
但是我的代码现在是当我输入123后程序直接走到下面的步骤了,在输入A#12345/的时候不是pwW变 而是pwR变成A#12345/
String comdata;
String pwR;
String pwW;
boolean stringComplete = false; //字符串结束标志位
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop() {
while(Serial.available()>0)
{
comdata+=char(Serial.read());
delay (2);
}
delay (100);
pwR=comdata;
Serial.println("PWR");
Serial.println(pwR);
delay (100);
if (pwR=="123")
{
stringComplete = true;
if (stringComplete){
while(Serial.available()>0)
{
pwW+=char (Serial.read());
delay(2);
}
if (pwW=="A#12345/")
{
Serial.println("PWW");
Serial.println(pwW);
digitalWrite(13,OUTPUT);
delay (5000);
stringComplete =false;
}
}}
// put your main code here, to run repeatedly:
comdata="";} String comdata,pwR,pwW;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if(comdata=="123")
{
while(Serial.available()>0) pwW+=char(Serial.read());
delay(1000);
Serial.print("PWW=");
Serial.println(pwW);
delay (1000);
}
while(Serial.available()>0)comdata+=char(Serial.read());
delay (1000);
pwR=comdata;
Serial.print("PWR=");
Serial.println(pwR);
delay (1000);
}提几个小小的建议:
1)程序都是顺序执行,Serial.read()读完后,缓存里面会被清空,也就是说按照你的程序pwR永远都是第一个读的;
2)没有用处的变量和语句尽量的少,可读性会高一些;
3)逻辑判断的先后顺序需要弄清楚。
与君共勉!
页:
[1]