将byte []写入串行时,该值与各个字节不同

时间:2014-12-03 20:15:10

标签: android byte bytearray

我正在尝试通过串口向Arduino写一个字节。 “命令”是从另一种方法发送的单个字符。当我查看byteCommand[0]时,'s'正确转移到115,但当我查看整个byteCommand时,它会显示为一个字符串,其中包含[B@,然后是一堆十六进制字符。我可以修改Arduino代码来查找而不是char值,但我觉得这个字节可以通过正确的方式发送。

        byte[] byteCommand = new byte[1];         
        byteCommand[0] = (byte) command[0]

        if (command == 's' || command == 'f') {
            mSerialPort.write(byteCommand);
            commandInfo.setText(String.valueOf(command));
            rawInfo.setText(String.valueOf(byteCommand));
        }

1 个答案:

答案 0 :(得分:0)

那是因为当你看到“byteCommand作为一个整体”时你并没有真正看到数组中的值,而是你正在查看对象“byteArray.toString()”方法返回的字符串,这通常是像你看到的东西......

如果要实际查看数组中的值,如[115,23,56],则必须使用Arrays方法字符串,如下所示:

String arryValuesString = Arrays.toString(byteCommand);

希望它有所帮助!

问候!