2011-04-28 105 views
0
char* lastfeedbuffer[3]; 
void lastfeed_receive(){ 
    while(Serial.available() >= LASTFEED_LEN){ 
    char c = Serial.read(); 
    if (c == LASTFEED_HEAD){ 
     for (int i = 0; i < LASTFEED_LEN - 1; i++){ 
     lastfeedbuffer[i] = Serial.read(); 
     } 
    } 
    } 
    Serial.println(lastfeedbuffer); 
    if (lastfeedbuffer == "00"){ 
    Serial.println("asdf"); 
    } 
} 

我不明白爲什麼下面的代碼不打印asdfSerial.println(lastfeedbuffer)打印00,這意味着它應該進入循環的任何想法,爲什麼它不?Arduino C不會進入循環?

+2

'lastfeedbuffer'和'「00」'不是兼容的類型:第一種類型是'3指向char的數組'類型;第二個是'char'數組。提高編譯器的警告級別和**請注意警告**。 – pmg 2011-04-28 22:07:06

回答

3

使用strcmp(lastfeedbuffer, "00") == 0 - 你現在正在做的是比較兩個不相關的指針。

另外,我相信你在你的實際代碼中有char lastfeedbuffer[3];而不是char* lastfeedbuffer[3];