通过Arduino将字符串通过蓝牙发送到Android设备
我正在通过蓝牙向一个安卓设备发送字符串。
我有一个Arduino开发板,上面连接了一个Synapse SNAP RF100模块和一个RN42蓝牙模块,这两个模块都连接在串口上。
我从RF100模块读取数据,然后在Arduino上把这些数据写入RN42模块,使用的代码是:
Serial3.write(Serial2.read());
在SNAP上运行的代码是用SNAPpy(类似Python的一种语言)写的,代码如下:
photval = readADC(2)
myString = "Photocell Value: " + str(photoval)
print myString
打印出来的字符串会写入RN42模块,安卓设备接收到后会在一个TextView
中显示。
上面的代码让安卓设备显示Photocell:
但是你会发现photoval
没有显示出来。
在Python那边字符串是正常的,所以可能是蓝牙在改变它,或者是安卓设备在改变它。
有没有人知道这是什么原因呢?
1 个回答
2
问题出在Arduino的代码上。我通过循环读取传入的数据来解决了这个问题:
void loop() {
char rxdata[14];
if (Serial2.available() > 0){
Serial2.readBytes(rxdata, 14);
Serial3.write(rxdata);
}
}
现在我可以看到我预期的完整字符串了。