我编了一个简单的程序,能够传输,但是得到的结果有问题

粟潇 玩转 Arduino ——数据... 最后由 周文家 于2017年08月08日回复

  • 1 回答
  • 969 浏览

  我编了一个简单的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;

}

}

}

  • 周文家 2017年08月08日 回答 #1楼
  • 很久没写了,我不确定我说的是否正确, 但你可以试试, 你用无符号char定义的变量abcd, 你可以在发送方代码中加入输出看一下这四个变量的值是否是1234。

  • 0 评论