软件Serial.h库无法正常工作

时间:2013-07-15 16:11:58

标签: bluetooth windows-phone-8 arduino

我创建了一个WP8应用程序。它连接到蓝牙并检测到它。蓝牙模块也连接在一起。但数据并非来自Arduino的电话:(

错误代码

if(btSerial.available()) {
    Serial.println(distance); 
    btSerial.write(distance);
}
else {
    Serial.println("error");   -> always prints this 
}
代码中的

始终是错误部分在串行监视器中打印。我已将蓝牙设备中的引脚连接到引脚下方。

RXD - 11, TXD - 10, GND - GND, VCC - 5v,

请帮帮我为什么btSerial.available()没有解雇?

1 个答案:

答案 0 :(得分:0)

你有倒退的逻辑。 available()测试Arduino是否在其接收缓冲区中有数据。它不会测试连接是否准备就绪。所以串行程序的整体模式

if(someserial.available()) {
  someserial.read... loop to get input
  print stuff received
}

要写,只需写。

//no if's just go
someserial.write("my output")

你不需要等待。使用双线串行连接,您没有流量控制。换句话说,arduino和蓝牙收发器之间没有关于就绪状态或其他状态的信号。由于蓝牙链路的波特率超过了arduino串口的波特率,因此无法真正溢出蓝牙传输流。

协商连接的蓝牙方面意味着对Arduino透明。换句话说,您的程序与使用硬件串行端口的程序相同。如果由于某种原因,您需要连接的详细信息,则有特殊的字节序列允许与蓝牙硬件进行通信。