2016-08-03 4 views
0

사전에 불쌍한 영어에 대해 사과드립니다.블루투스가 연결 데이터를 전송하지 못하도록하는 방법

저는 핸드폰의 블루투스를 사용하여 2 바이트의 데이터를 HC-05 블루투스 모듈을 통해 MCU에 보낼 때마다 작업하고 있습니다. MCU는 수신 된 데이터를 저장할 버퍼가 없으므로 최소 10ms 간격으로 한 바이트를 두 번 보내야합니다.

오실로스코프를 사용하여 HC-05 모듈을 모니터링합니다. 대부분의 경우 휴대 전화는 각각 1 바이트의 데이터가 포함 된 2 개의 패킷을 전송하지만 때로는 2 개의 패킷을 함께 전송하므로 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

Welcome to StackOverflow. 코드의 스크린 샷을 게시하지 마십시오. 실제 코드를 질문에 복사/붙여 넣기하십시오. –

+0

조언 해 주셔서 감사합니다. –

답변

0

플러시는 출력 스트림에서 블루투스 스택으로 데이터를 쓰는 것이 원격 장치에 데이터를 쓰는 것을 의미하지 않는다고 가정합니까? 죄송합니다. 아직 코드를 확인하지 않았습니다. 그러나 동기화 목적으로 원격 장치에서받은 데이터를 반향시킬 수 있습니까? 그렇다면 앱이 두 번째 바이트를 원격으로 보낼 수 있습니까?

관련 문제