使用蓝牙 HC-05 从 Android 应用程序 Blutooh(蓝牙终端)接收到 Arduino 的字符串数据

Received String Data From Android Apps Blutooh (Bluetooth Terminal) to Arduino using Bluetooth HC-05

我想创建一个系统,可以使用蓝牙模块在 android 应用程序与 arduino 之间发送消息。我使用了 qwerty

制造的蓝牙终端 (android)
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
String Data = "";

void setup()  
{
    mySerial.begin(9600);
}

void loop() // run over and over
{
  while(mySerial.available()==0)
  {}

  char character;
  while(mySerial.available()>0)
  {
    character = mySerial.read();
    mySerial.write(character);
  }

  data = data + character;

  if (character == 13) {  
    mySerial.print("Received: ");
    mySerial.println(data);
    data = "";
  } 
}

当我发送单个字符时一切正常,但如果我发送字符串数据(超过1个字符)arduino无法正确接收。总是收到第二个字符的错误数据。

任何人都可以描述并帮助我解决问题? 任何回应表示赞赏。

如果解决了问题,我会发布攻略

如果您尝试获取多个字符,请使用数组一次性存储缓冲区中的所有字符。

也许这会给你一些想法。

this post does it nicely

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
String Data = "";

void setup() {
    mySerial.begin(9600);
}

void loop() // run over and over
{
  while(mySerial.available()==0)
  {}

  char character;
  while(mySerial.available()>0)
  {
    character = mySerial.read();
    mySerial.write(character);
    data = data + character;
  }

 // data = data + character;

  if (character == 13) {  
    mySerial.print("Received: ");
    mySerial.println(data);
    data = "";`enter code here`
  } 
}