添加蓝牙传输的数据之间的延迟

时间:2013-02-14 23:48:48

标签: android bluetooth delay pic

我正在尝试在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()或类似的东西?

谢谢

1 个答案:

答案 0 :(得分:0)

假设您正在使用像SPP这样的标准蓝牙配置文件来发送数据,在接收端,您应该能够以您想要的速率接收(一次一个字节,下一次丢失后)蓝牙内部缓冲或如果发件人太快,请应用流量控制来停止发件人。 如果使用正确的蓝牙堆栈,我不知道如何搞砸数据