调用重载'println(char [4],int)'是不明确的

时间:2017-04-29 11:59:41

标签: arduino serial-port communication arduino-uno

我有两个Arduinos,我想让它们通过TX / RX进行通信。 Arduino一个作为发送者,Arduino两个作为接收者。但我接收器代码有问题并得到此错误:

  

调用重载'println(char [4],int)'是不明确的

任何人都可以帮助我吗?谢谢。

这是我的收件人代码:

char str[4];

void setup(){
  Serial.begin(9600);
  Serial.begin(9600);
}

void loop() {
  int i=0;
  if (Serial.available()){
    delay(100); //allows all serial sent to be received together
    while(Serial.available() && i<4){
      str[i++] = Serial.read();
    }
    str[i++]='\0';
  }
  if(i>0){
    Serial.println(str, 4);
  }
}

1 个答案:

答案 0 :(得分:1)

为什么设置中有两个Serial.begin(9600)? 在while循环之后,i var等于4.你在str数组中的最大索引是3(0-3),所以你正在访问不存在的第四个索引。你应该删除'str [i ++] = '\ 0''而且,如果你想进行交流,你应该做一些事情:

unionX1 = data[(data.cpty_type == 'INTERBRANCH') & ((data.settlementDate >= '2017-04-18') | (data.settlementDate == '2017-04-18'))]