Arduino 调用重载';println(char[4],int)和#x27;含糊不清
我有两个Arduinos,我想让它们通过TX/RX进行通信。Arduino一号作为发送方,Arduino二号作为接收方。但我的接收器代码有问题,出现以下错误: 重载“println(char[4],int)”的调用不明确 有人能帮我吗?多谢各位 这是我的接收器代码: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
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???你知道每个都需要独立上传吗?