使用蓝牙 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`
}
}
我想创建一个系统,可以使用蓝牙模块在 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`
}
}