3

我从 arduino 发送到 arduino 字符串(I2C),捕获并保存到 char[10]。当我将此变量与文本进行比较时,条件没有执行:-/而且我不知道为什么......

char dataRx[10] = "";

void DaemonReceiving(int howMany){
  int index = 0;

  while(Wire.available() > 0){
    char c = Wire.read();

    dataRx[index++] = c;
    dataRx[index] = '\0';
  }
  Serial.println(dataRx);

  if(dataRx == "HELLO"){
        Wire.beginTransmission(1);
        Wire.write("HI");
        Wire.endTransmission();
  }
}
4

3 回答 3

7

要将 dataRX 字符串与“HELLO”进行比较,请使用:

if (strcmp (dataRx,"HELLO") == 0) {

    // matches HELLO

}
于 2013-03-22T21:43:09.267 回答
4

如果它是 C 你必须使用strcmp,否则你只是比较两个指针 - “HELLO”的位置和 dataRx 的位置(这将失败)

请注意,这与 arduino 没有任何关系 :)

于 2013-03-22T21:37:56.303 回答
4

这比较指针值:

if(dataRx == "HELLO")

你需要strcmp字符串比较:

if(strcmp(dataRx, "HELLO") == 0)
于 2013-03-22T21:38:22.307 回答