极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9896|回复: 1

求助保存字符串问题

[复制链接]
发表于 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="";}
回复

使用道具 举报

发表于 2016-7-23 14:05:45 | 显示全部楼层
  1. String comdata,pwR,pwW;
  2. void setup()
  3. {
  4.   Serial.begin(9600);
  5. }

  6. void loop()
  7. {
  8.   if(comdata=="123")
  9.   {
  10.     while(Serial.available()>0) pwW+=char(Serial.read());
  11.     delay(1000);
  12.     Serial.print("PWW=");
  13.     Serial.println(pwW);
  14.     delay (1000);
  15.   }
  16.   while(Serial.available()>0)  comdata+=char(Serial.read());
  17.   delay (1000);
  18.   pwR=comdata;
  19.   Serial.print("PWR=");
  20.   Serial.println(pwR);   
  21.   delay (1000);  
  22. }
复制代码
提几个小小的建议:
1)程序都是顺序执行,Serial.read()读完后,缓存里面会被清空,也就是说按照你的程序pwR永远都是第一个读的;
2)没有用处的变量和语句尽量的少,可读性会高一些;
3)逻辑判断的先后顺序需要弄清楚。

与君共勉!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-20 06:57 , Processed in 0.042359 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表