我試圖通過串行將單個字節寫入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