2013-02-14 166 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