0

我正在尝试在我的 Android 智能手机和 PIC 微控制器之间传输一些简单的数据。一切都在使用此代码发送:

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-3 毫秒?或者我必须逐字节发送并使用postExecute()with Handlers 或类似的东西?

谢谢

4

1 回答 1

0

假设您使用像 SPP 这样的标准蓝牙配置文件来发送数据,在接收端,您应该能够以您想要的速率接收(一次一个字节,延迟后的下一个字节)蓝牙内部缓冲或应用流量控制如果发件人太快,则停止发件人。如果使用适当的蓝牙堆栈,我看不出数据会如何混乱

于 2013-02-15T00:55:20.203 回答