我正在尝试使用USB串行通信将Arduino ADC数据发送到Android平板电脑。我在arduino端使用Serial.println()
。我的问题是我无法解码在安卓端收到的数据。
例如。假设我从 arduino 发送Serial.println(768)
,我检查我的 android 接收缓冲区,它显示(55,54,56,13,10(。
如何将此数据解码回768值?
查看 ASCII 表,您会发现
55,54,56,13,10
代表
"768nr"
大多数编程语言都提供了字节值和字符/字符串及其字符串库之间的转换方法。因此,您不必自己实现解码。
请参阅 https://howtodoinjava.com/array/convert-byte-array-string-vice-versa/
或 UTF-8 字节 [] 到字符串
或您在网上找到的"字节到字符串Android"的任何其他内容
字符串原始数据 = " " ; 字符串最终数据 = " "; UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback(( {//Defining a Callback,每当读取数据时都会触发。 @Override public void onReceivedData(byte[] arg0( {
byte[] buffer = arg0;
for (i =0;i <=(buffer.length-1);i++) {
if(buffer[i]!= 13) {
if(buffer[i]== 10){
finaldata = rawdata;
rawdata = "";
}else {
chdata = (char) buffer[i];
rawdata += chdata;
}
}
}
data = Integer.parseInt(finaldata);
}