2016-08-03 26 views
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);”没有工作或别的什么?

+0

欢迎来到StackOverflow。请不要张贴您的代码的截图。将实际代码复制/粘贴到您的问题中。 –

+0

感谢您的建议。 –

回答

0

我假设刷新只意味着将数据从输出流写入蓝牙堆栈并不意味着将数据写入远程设备?对不起,我没有检查代码。 但是,为了达到同步的目的,您的远程设备是否可以回显接收到的数据,然后您的应用可以将第二个字节发送到远程?