dreamlang123 发表于 2016-7-22 14:55:46

求助保存字符串问题

本帖最后由 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="";}

wolfcolorful 发表于 2016-7-23 14:05:45

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]
查看完整版本: 求助保存字符串问题