通过Arduino将字符串通过蓝牙发送到Android设备

1 投票
1 回答
2470 浏览
提问于 2025-04-18 02:21

我正在通过蓝牙向一个安卓设备发送字符串。

我有一个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);
   }
}

现在我可以看到我预期的完整字符串了。

撰写回答