通过蓝牙Arduino发送字符串 INT数据



我是Arduino的新手,我一直在研究困扰我几天的问题。

我有一个Arduino Uno和HC-05蓝牙模块。

基本上我想通过蓝牙将字符串和int数据一起发送。

代码

#include <SoftwareSerial.h>        
SoftwareSerial BTSerial(10, 11); // RX | TX
void setup(void) {
  // Arduino setup
  Serial.begin(9600);
  // setting the baud rate of bluetooth
  BTSerial.begin(38400); // HC-05 default speed in AT command more
}
void loop(void) {
  int num = 123;
  BTSerial.write("#"); // Works
  BTSerial.write(num); // works
  BTSerial.write(String(num) + "#");
  // Error: no matching function for call to 'SoftwareSerial::write(StringSumHelper&)'
}

结果字符串终于具有"#"字符串。

根据Arduino网站,它具有2个功能。

 - Serial.write(val) 
 - Serial.write(str) 

任何帮助。

谢谢。

写入用于发送原始字节。您想使用serial.print。

如果要将字符串从另一个设备发送到Arduino,则您的代码应该是这样的:

#include <SoftwareSerial.h>
SoftwareSerial BT(3, 4); 
String bt = "";
void setup() {
  BT.begin(9600);
  Serial.begin(9600);
}
void loop() {
  if(BT.available()){
    bt = BT.readString();
  }
  Serial.println(bt);
  while(!BT.available());
}

上面的代码,等待您的蓝牙模块收到任何数据并从中读取字符串并以串行打印。

为了发送int,您可以读取字符串并将其解析为int。

最新更新