我已将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);
答案 0 :(得分:0)
Arduino上的SoftwareSerial本质上是一种半双工类型的通信。您可能有专用的发送和接收引脚,但相同的定时器用于发送和接收。因此,您无法同时对SoftwareSerial对象进行传输和接收工作。
这段代码让我觉得你在代码的其他部分内传递了一些东西。
bluetooth.flush();
如果是,您将必须实现某种形式的流控制,以确保您不会同时在SoftwareSerial对象上发送和接收某些内容。