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。请不要张贴您的代码的截图。将实际代码复制/粘贴到您的问题中。 –
感谢您的建议。 –