我是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。