我编了一个简单的Arduino程序,是用TX RX端口连接两个单片机的。具体是一个单片机作为发送方,另一个单片机作为接收方,发送方的单片机发送数字“0 1 2 3”给接收方的单片机,当接收方的单片机接收到数据后,判断接收的第一个数据是不是“0”,如果是“0”,就让端口8输出高电平。但是在实验中,数据能够传输,可是接收方接收到的值是大于0的数,然后用1 2 3,也是接收到的数是其他数据,以下是我发送方和接收方的代码,请帮我看看哪里错了:
发送方:
unsigned char a=0;
unsigned char b=1;
unsigned char c=2;
unsigned char d=3;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(a);
delay(1000);
Serial.println(b);
delay(1000);
Serial.println(c);
delay(1000);
Serial.println(d);
delay(1000);
}
接收方:
unsigned char Re_buf[4];
unsigned char counter=0;
unsigned char sign=0;
void setup() {
Serial.begin(9600);
}
void loop() {
if (sign)
{sign=0;
{
if (Re_buf[0]>0){
digitalWrite(8,HIGH);
}
}
}
}
void serialEvent(){
while (Serial.available()){
Re_buf[counter]=(unsigned char)Serial.read();
counter++;
if (counter==4)
{
counter=0;
sign=1;
}
}
}