0
提前,我想對我可憐的英語說抱歉。如何防止藍牙發送拼接數據
我正在使用手機的藍牙通過HC-05藍牙模塊每次向MCU發送兩個字節的數據。由於MCU沒有緩衝區來存儲接收到的數據,我必須以至少10ms的間隔發送一個字節兩次。
我使用示波器來監測HC-05模塊。在大多數情況下,我的電話每發送一個字節數據的兩個數據包,但有時會發送兩個數據包在一起,因此MCU無法處理它。
下面是如何定義的發送方法
public void sendData(){
Byte byte_send = (byte) Integer.parseInt(tmp_addr);
byte[] tmp = new byte[]{byte_send};
Byte byte_2 = (byte) Integer.parseInt(tmp_data);
byte[] temp = new byte[]{byte_2};
try {
mOutStream.write(tmp);
mOutStream.flush();
this.sleep(20);
mOutStream.write(temp);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
誰能告訴我,爲什麼會導致這樣的事情發生?這是因爲「睡眠(20);」沒有工作或別的什麼?
歡迎來到StackOverflow。請不要張貼您的代碼的截圖。將實際代碼複製/粘貼到您的問題中。 –
感謝您的建議。 –