首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的HC-05蓝牙android通信

简单的HC-05蓝牙android通信
EN

Stack Overflow用户
提问于 2021-02-13 23:30:37
回答 1查看 101关注 0票数 0

我正在尝试使用HC-05蓝牙模块在我的android手机和arduino之间进行简单的通信。

虽然我的模块工作正常,我也可以在我的手机上发送和接收数据,但我的btData变量的数据在收到后似乎很快就会丢失。在我的android应用程序上,我得到了输入数据输出,就像在我的代码中写的一样,然后立即出现一个空的输出/行。

将"1"/"off“写入我的控制台不会触发if(btData == "1")...部分代码。

我已经附上了我的代码,以及android终端和我的arduino HC-05连接。

android terminal

arduino with wiring

希望有人能帮助我,因为我找不到任何错误。

代码语言:javascript
复制
#include <SoftwareSerial.h>
#define rxPin 10
#define txPin 11

SoftwareSerial btSerial(rxPin, txPin);
String btData;

void setup() {
  btSerial.begin(9600);
  btSerial.println("bluetooth available");
}

void loop() {
  if (btSerial.available()) {
    btData = btSerial.readString();
    btSerial.println(btData);
    if (btData == "1") {
      btSerial.println("LED on Pin 13 is on");
    }
    if (btData == "off") {
      btSerial.println("LED on Pin 13 is off");
    }
  }
  delay(100);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-14 01:53:06

是否正在发送的数据在字符串的末尾有一个新的行字符?

这就是为什么您在发送的数据后看到空行的原因。

一种可能的解决方案可能是:

代码语言:javascript
复制
void loop() {
  if (btSerial.available()) {
    btData = btSerial.readString();
    btData.trim()
    btSerial.println(btData);
    if (btData == "1") {
      btSerial.println("LED on Pin 13 is on");
    }
    if (btData == "off") {
      btSerial.println("LED on Pin 13 is off");
    }
  }
  delay(100);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66186785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档