我试图通过串行将单个字节写入Arduino。 “命令”是从另一种方法发送的单个字符。当我查看byteCommand[0]
时,'s'正确转移到115,但当我查看byteCommand
作为一个整体时,它将显示为一个字符串盯着[[email protected]
,然后是一串十六进制字符。我可以修改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));
}
我想,这是很正常的,当你发送数组。如果你将使用几乎所有的数组方法toString(),那么它将导致这个奇怪的东西王。我认为,这可以帮助你:http://stackoverflow.com/questions/6684665/java-byte-array-to-string-to-byte-array – 2014-12-03 20:22:11
这是有道理的,但我仍然困惑,为什么字符串随着每次迭代而改变。如果唯一的字节是'115',那么不应该保持字符串不变? – JHinne 2014-12-03 20:25:58
它正在改变,因为它显示的是内存位置。 – 2014-12-03 20:28:38