【问题标题】:Received String Data From Android Apps Blutooh (Bluetooth Terminal) to Arduino using Bluetooth HC-05使用蓝牙 HC-05 从 Android 应用程序 Blutooh(蓝牙终端)到 Arduino 接收字符串数据
【发布时间】:2015-08-25 17:02:34
【问题描述】:

我想创建一个系统,可以使用蓝牙模块在 android 应用程序与 arduino 之间发送消息。我用的是qwerty的蓝牙终端(安卓)

#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 无法正确接收。总是收到第二个字符的错误数据。

谁能描述并帮助我解决问题? 任何回应表示赞赏。

如果解决了问题,我会发布指南。

【问题讨论】:

  • 例子,如果我输入test,arduino只显示tyyy

标签: android bluetooth arduino communication


【解决方案1】:
#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`
  } 
}

【讨论】:

  • character==13 是什么意思?
【解决方案2】:

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

也许这会给你一些想法。

this post does it nicely

【讨论】:

  • Hy CCR。 Thanjs你..我试过那个教程,如果使用终端它就可以了。但是,如果我使用蓝牙通信(使用安卓手机),我对实现代码感到困惑。任何使用蓝牙通信的解决方案或示例?
猜你喜欢
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
  • 2014-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
相关资源
最近更新 更多