首页 > 解决方案 > Arduino 字节 [] 到字符串

问题描述

您好,我正在编写从 Android Studio 到 Arduino 的蓝牙连接。连接有效并发送字符串。我只在我的 Arduino (x?xx?xx??xxx?xxx?x) 上得到类似的东西,问号是我发送的字符串的另一种方式

这是我的代码:

#include <SoftwareSerial.h>

#define rxPort 11
#define txPort 10
char btData;
String string;

SoftwareSerial btSerial(rxPort, txPort);

void setup(){
  Serial.begin(9600);
  btSerial.begin(38400);
  Serial.println("bluetooth available");
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop(){

if(btSerial.available()>0){
  string = "";
}
while(btSerial.available()>0){
  btData = (byte)btSerial.read();
  if(btData==":"){
    break;
  }else{
    string += btData;
  }
  delay(1);
  Serial.println(string);
}

if(string == "on"){
  digitalWrite(LED_BUILTIN,HIGH);
}

}

标签: arduino

解决方案


为什么要将读取转换为字节?char 它是:) 它也应该以 9600 波特率工作

我项目中的示例(虽然我没有构建字符串 - 使用单个字符作为命令)

SoftwareSerial blue(3, 5); // BlueTooth RX, TX;

void BluetoothSetup()
{
  blue.begin(9600);
  blue.print("AT+NAMEKuku"); // give it a name
  delay(2000);   
  Serial.println("got BT");
}
void setup() {
....
BluetoothSetup();
....
}

void loop() {
  if (blue.available()) {
     char r = blue.read();
     ProcessRemoteCommand(r);
  }  
}

推荐阅读