我正在尝试在Android智能手机和PIC Micro控制器之间传输一些简单的数据。一切都在使用此代码发送:
try {
mBluetoothOut.write(new byte[] {
StartByte, // Start byte
//(byte)(x1Distance & 0xFF), // x1 -> LSB
//(byte)((x1Distance >> 8) & 0xFF), // x1 -> MSB
(byte)(y1Distance & 0xFF), // y1 -> LSB
(byte)((y1Distance >> 8) & 0xFF), // y1 -> MSB
(pad1.isYNegative()) ? (byte)1 : (byte)0,
//(byte)(x2Distance & 0xFF), // x2 -> LSB
//(byte)((x2Distance >> 8) & 0xFF), // x2 -> MSB
(byte)(y2Distance & 0xFF), // y2 -> LSB
(byte)((y2Distance >> 8) & 0xFF), // y2 -> MSB
(pad2.isYNegative()) ? (byte)1 : (byte)0,
(byte)(servo1Angle & 0xFF), // servo 1 -> LSB
(byte)(servo2Angle & 0xFF) // servo 2 -> LSB
});
} catch (IOException e) {
e.printStackTrace();
}
问题是我的Android设备发送的数据太快而我的微控制器搞砸了。有没有办法在发送的每个字节之间放置大约2-3mS的延迟?或者我必须逐字节发送并使用带有处理程序的postExecute()
或类似的东西?
谢谢
答案 0 :(得分:0)
假设您正在使用像SPP这样的标准蓝牙配置文件来发送数据,在接收端,您应该能够以您想要的速率接收(一次一个字节,下一次丢失后)蓝牙内部缓冲或如果发件人太快,请应用流量控制来停止发件人。 如果使用正确的蓝牙堆栈,我不知道如何搞砸数据