2011-04-28 8 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"); 
    } 
} 

なぜ、次のコードでasdfが印刷されないのか分かりません。 Serial.println(lastfeedbuffer)00という文字を出力します。なぜなら、それはなぜループに入り込まないのでしょうか?Arduino Cはループに入りませんか?

+2

'lastfeedbuffer'と' '00" 'は互換性のある型ではありません。最初の型は' array of 3 char to char'型です。 2番目の型は 'array of char'型です。コンパイラの警告レベルを上げ、**警告を出してください**。 – pmg

答えて

3

使用strcmp(lastfeedbuffer, "00") == 0 - 現在行っていることは、無関係な2つのポインタを比較することです。

また、char lastfeedbuffer[3];は実際のコードではchar* lastfeedbuffer[3];ではないと思いますか?

関連する問題