我有像0x38,0x39,0xC0和0xE8十六進制代碼,我想發送這個十六進制代碼,因爲它是藍牙,無需轉換爲十六進制或整數。我用這個代碼在我的應用程序發送(藍牙活動):發送十六進制代碼到藍牙
byte[] hex_txt = {(byte)0x38, (byte)0x39, (byte)0xC0, (byte)0xE8};
OutputStream outStream;
try {
outStream = socket.getOutputStream();
outStream.write(hex_txt);
System.out.println("byte sent: " + hex_txt);
}
當我發送驗證碼到藍牙,進一步發送到Arduino板它必須匹配這些十六進制代碼,並做一些operations.My Arduino的代碼是:
if(Serial.available()>3)
{
if(Serial.read()==0x38 && Serial.read()==0x39)
code=Serial.read()+Serial.read()*256;
irsend.sendCode(code,16);
Serial.println("code sent is");
Serial.println(code,DEC);
}
與此Arduino的代碼沒有問題,但什麼是米我的應用程序發送到藍牙可能wrong..so它不匹配。我需要發送這些十六進制代碼的類型是什麼?
該代碼對我來說很合適。你收到哪些字節而不是預期的字節? – domsom
@domsom感謝您的重播。我得到實際上有符號的數字,如-64 ...所以我改變像這個字節a = -64; int b =((int)a)& 0xFF;所以這給了我無符號數。 –
什麼是irsend? –