2013-02-14 140 views
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-3mS?或者我必须逐字节发送,并使用处理程序或类似的东西postExecute()

谢谢

回答

0

假设你使用的是标准的蓝牙配置文件像SPP发送数据,在接收端,你应该能够接受的速度,你想要的(在时间和后下一个字节detay)如果速度太快,蓝牙会缓冲或应用流量控制来停止发送方。 如果使用适当的蓝牙堆栈,我看不出数据如何混乱

+0

你说得对。我会进一步调查,应该有另一个问题。非常感谢您的指导和知识:) – Andres 2013-02-15 03:42:17