マイナス37度 发表于 2015-3-12 15:21:07

if(comdata[0]=='+'&&comdata[5]=='0'&&comdata[9]=='K')

本帖最后由 マイナス37度 于 2015-11-8 21:16 编辑

发+0K没反应,求助,该怎么改啊

不是真的发+0k,是+????0???k










String comdata = "";

void setup()
{
Serial.begin(9600);//设置串行通信的波特率
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
}

void loop()
{
Serial.flush();
while (Serial.available() > 0)
    {
      comdata += char(Serial.read());
      delay(2);
      }
      
if(comdata=='+'&&comdata=='0'&&comdata=='K')
    {
      
      digitalWrite(13,HIGH);
      
    }
   if(comdata=='+'&&comdata=='0'&&comdata=='G')
    {
      
      digitalWrite(13,LOW);
      
    }
    comdata = "";
    Serial.println("AT+CIPSEND=0,15");
    delay(1000);
}





String comdata = "";

void setup()
{
Serial.begin(9600);//设置串行通信的波特率
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
}

void loop()
{
Serial.flush();
while (Serial.available() > 0)
    {
      comdata += char(Serial.read());
      delay(2);
      }
      
if(comdata=='+'&&comdata=='0'&&comdata=='K')
    {
      
      digitalWrite(13,HIGH);
      
    }
   if(comdata=='+'&&comdata=='0'&&comdata=='G')
    {
      
      digitalWrite(13,LOW);
      
    }
    comdata = "";
    Serial.println("AT+CIPSEND=0,15");
    delay(1000);
}

i7456 发表于 2015-3-12 16:26:20

运算符多的情况下,尽量加些括号吧。运算符的优先级别我是记不住。

Super169 发表于 2015-3-12 17:03:28

if(comdata=='+'&&comdata=='0'&&comdata=='K')

這樣檢測 0,5,9 位的字符, 在發 "+0K" 時, 你想有什麼反應?就只可以執行最後的幾句.

liha99 发表于 2015-3-12 17:31:12

comdata += char(Serial.read());是不是有问题。字条串一般不能添加字符。if(comdata=='+'&&comdata=='0'&&comdata=='K')这个判断问题。

マイナス37度 发表于 2015-3-12 18:31:56

Super169 发表于 2015-3-12 17:03 static/image/common/back.gif
這樣檢測 0,5,9 位的字符, 在發 "+0K" 時, 你想有什麼反應?就只可以執行最後的幾句.

不是真的发+0k,是+????0???k

マイナス37度 发表于 2015-3-12 18:42:33

liha99 发表于 2015-3-12 17:31 static/image/common/back.gif
comdata += char(Serial.read());是不是有问题。字条串一般不能添加字符。if(comdata=='+'&&comdata ...

+IPD,0,9,K这个算字符串么

Super169 发表于 2015-3-13 09:47:51

要 debug 的話, 為何不直接把 comdata 的資料印出來看看, 不就可以知道接收到東西是否有問題了嗎?
在 comdata="" 之前, 加一句 Serial.println(comdata); 就可以看看是那裡出了問題嗎?

你是在接收東西, 為何要先執行一次Serial.flush(); ?如果 IDE 是 1.0 之前, 會把 incoming data 都清除了的.

マイナス37度 发表于 2015-3-14 19:27:12

Super169 发表于 2015-3-13 09:47 static/image/common/back.gif
要 debug 的話, 為何不直接把 comdata 的資料印出來看看, 不就可以知道接收到東西是否有問題了嗎?
在 comd ...

好办法,谢谢
页: [1]
查看完整版本: if(comdata[0]=='+'&&comdata[5]=='0'&&comdata[9]=='K')