Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 向蓝牙发送十六进制代码_Android_Bluetooth_Arduino - Fatal编程技术网

Android 向蓝牙发送十六进制代码

Android 向蓝牙发送十六进制代码,android,bluetooth,arduino,Android,Bluetooth,Arduino,我有十六进制代码,如0x38、0x39、0xC0和0xE8,我想将此十六进制代码原样发送到Bluetooth,无需转换为十六进制或整数。我在我的应用程序中使用此代码发送(Bluetooth活动): 当我将此代码发送到Bluetooth时,它会进一步发送到Arduino板,在那里它必须匹配这些十六进制代码并执行一些操作。我的Arduino代码是: if(Serial.available()>3) { if(Serial.read()==0x38 &

我有十六进制代码,如0x38、0x39、0xC0和0xE8,我想将此十六进制代码原样发送到Bluetooth,无需转换为十六进制或整数。我在我的应用程序中使用此代码发送(Bluetooth活动):

当我将此代码发送到Bluetooth时,它会进一步发送到Arduino板,在那里它必须匹配这些十六进制代码并执行一些操作。我的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代码没有问题,但是我从我的应用程序发送到Bluetooth的内容可能是错误的。所以它不匹配。我需要以何种类型发送这些十六进制代码?

-64
十进制可能表示为
0xC0
(请参阅)。我不喜欢Arduino代码,但我建议您确保
Serial.read()
返回的值被解释为无符号整数/字节。这将帮助您手动解释有符号位表示和数字输出。

我觉得代码还可以。您收到的是哪些字节而不是预期的字节?@domsom感谢您的重播。我得到的是有符号的数字,比如-64…所以我改变了这个字节a=-64;intb=((int)a)和0xFF;所以这给了我一个无符号的数字。你不想
Serial.println(code,HEX)?另外,如果你认为它在Android代码中,你见过这个吗@EricFossum i’l更改为Serial.println(代码,十六进制);我试试看。是的,你是对的。从Arduino代码中我得到了有符号的数字。因此,只有我将代码声明更改为无符号int代码。
   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);
   }