HC-05蓝牙串口有时会出错

时间:2018-06-05 17:26:35

标签: bluetooth arduino

我已将Connected HC-05与Arduino UNO联系我发送整数值示例:

Send           Receive
10             10
11             0
15             15
18             2541

有时获得正确的数据并且有时会出错数据。

全局:

//Bluetooth
#define BLUETOOTH_SPEED 9600
SoftwareSerial bluetooth(10, 11);

设定:

bluetooth.begin(BLUETOOTH_SPEED);

循环:

if (bluetooth.available() > 0) {
    integerValue = 0;
    while (bluetooth.available() > 0) {
      byte incoming = bluetooth.read();
      //Serial.println(incoming);
      if (incoming >= '0' && incoming <= '9') {
        integerValue = (integerValue * 10) + (incoming - '0');
        //delay(5);
      }
    }
    bluetooth.flush();
    Serial.println(integerValue);

1 个答案:

答案 0 :(得分:0)

Arduino上的SoftwareSerial本质上是一种半双工类型的通信。您可能有专用的发送和接收引脚,但相同的定时器用于发送和接收。因此,您无法同时对SoftwareSerial对象进行传输和接收工作。

这段代码让我觉得你在代码的其他部分内传递了一些东西。

bluetooth.flush();

如果是,您将必须实现某种形式的流控制,以确保您不会同时在SoftwareSerial对象上发送和接收某些内容。