【发布时间】:2016-12-08 17:00:32
【问题描述】:
在此之前,我想为我糟糕的英语说声抱歉。
我正在做一个项目,它使用手机的蓝牙每次通过 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();
}
}
谁能告诉我为什么会发生这种情况?是因为“sleep(20);”吗?没用还是别的什么?
【问题讨论】:
-
欢迎来到 StackOverflow。请不要发布您的代码的屏幕截图。将实际代码复制/粘贴到您的问题中。
-
感谢您的建议。
标签: multithreading bluetooth outputstream