我有两个Arduinos,我想让它们通过TX/RX进行通信。Arduino 一个作为发送器,Arduino 2作为接收器。但是我对接收器代码有问题并收到此错误:
重载的 '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++]=' ';
}
if(i>0){
Serial.println(str, 4);
}
}
为什么设置中有两个Serial.begin(9600)
? 在 while 循环之后,i
var 等于4
。数组中str
最大索引是str[3]
(0-3),因此您正在访问不存在的4th
索引。你应该删除该str[i++] = ' '
,如果你想进行通信,你应该做如下的事情:
if (i > 0) {
for (int j=0; j<4; j++) {
Serial.print(str[j]);
}
Serial.println("");
}