Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 调用重载';println(char[4],int)和#x27;含糊不清_Arduino_Serial Port_Communication_Arduino Uno - Fatal编程技术网

Arduino 调用重载';println(char[4],int)和#x27;含糊不清

Arduino 调用重载';println(char[4],int)和#x27;含糊不清,arduino,serial-port,communication,arduino-uno,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.ava

我有两个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);
  }
}
charstr[4];
无效设置(){
Serial.begin(9600);
Serial.begin(9600);
}
void循环(){
int i=0;
if(Serial.available()){
延迟(100);//允许同时接收所有发送的串行数据
while(Serial.available()&&i0){
序列号println(str,4);
}
}

为什么设置中有两个
串行。开始(9600)
? 在while循环之后,
i
var等于
4
。您在
str
数组中的最大索引是
str[3]
(0-3),因此您正在访问不存在的
4th
索引。您应该删除该
str[i++]='\0'
,如果您想进行通信,您应该执行以下操作:

if(i>0){

对于(int j=0;j'因为我使用2个arduino uno,当我使用1个uno和1个mega时,另一个serial.begin是serial1.begin(仅适用于mega)。好的,谢谢你的回答,我会试试这是什么评论……2个arduino,好的。1个uno+mega,也可以。但是为什么2个serial.begin???你知道每个都需要独立上传吗?