Im Voraus möchte ich mich für mein schlechtes Englisch entschuldigen.Wie man verhindern kann, dass Bluetooth verkettete Daten sendet
Ich arbeite an einem Projekt, das Handy-Bluetooth verwendet, um zwei Bytes von Daten zu einer MCU jedes Mal durch HC-05-Bluetooth-Modul zu senden. Da die MCU keinen Puffer zum Speichern der empfangenen Daten hat, muss ich ein Byte zweimal mit einem Intervall von mindestens 10 ms senden.
Ich benutze ein Oszilloskop, um das HC-05-Modul zu überwachen. In den meisten Fällen sendet mein Telefon zwei Pakete mit jeweils einem Datenbyte, aber manchmal sendet es zwei Pakete zusammen und daher kann die MCU das nicht verarbeiten.
unten ist, wie ich die Sendemethode definieren
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();
}
}
Kann mir jemand sagen, warum das verursacht passieren? Ist es, weil "schlafen (20)" hat nicht funktioniert oder etwas anderes?
Willkommen bei StackOverflow. Bitte posten Sie keine Screenshots Ihres Codes. Kopieren Sie den tatsächlichen Code in Ihre Fragen. –
Danke für den Rat. –