0

平台:Arduino UNO、Arduino Mega2560、HC-05

这里显示细节。

在此处输入图像描述

在 Arduino UNO( Master ) 中,我编码

Serial.print("A 1 2 3 4 5;");

在 Arduino Mega2560( slave ) 中,我编码

  void setup() 
{
    //connect to the PC
    Serial.begin(9600);
    //connect to the Arduino UNO(By bluetooth)
    Serial1.begin(38400); 
}

void loop()
{
    //its value > 0
    Serial.println(Serial1.available());   
    //output : 128 or 248
    Serial.print(Serial1.read());
    delay(1000);          
}

的值为Serial.available() > 0真,但打印结果Serial.print(Serial1.read());异常。它打印

在此处输入图像描述

我想知道原因和解决方法。谢谢!

4

1 回答 1

0

我假设您确保两个蓝牙设备都正确连接并且波特率匹配。现在,一个问题可能是缓冲区可能已满。在发送方,提供等于或略高于接收方延迟的延迟。接下来,在接收方,将 void loop 更改为:

void loop(){
    if(Serial1.avaialable() > 0){
        char value = Serial1.read();
        Serial.println(value);
        delay(1000);
    }
}
于 2018-07-06T05:31:33.313 回答