通过 USB 串口将 Arduino ADC 数据发送到 Android 平板电脑
Sending Arduino ADC Data to Android Tablet via USB Serial
我正在尝试使用 USB 串行通信将 Arduino ADC 数据发送到 android 平板电脑。我在 arduino 端使用 Serial.println()
。我的问题是我无法解码在 android 端接收到的数据。
对于例如。假设我从 arduino 发送 Serial.println(768)
,我检查我的 android 接收缓冲区,它显示 (55,54,56,13,10)。
如何将此数据解码回 768 值?
调查 ASCII table 你会发现
55,54,56,13,10
代表
"768\n\r"
大多数编程语言都提供了在字节值和 characters/strings 之间转换字节值及其字符串库的方法。所以你不必自己实现解码。
参考https://howtodoinjava.com/array/convert-byte-array-string-vice-versa/
或UTF-8 byte[] to String
或您在网上找到的任何其他 "byte to string Android"
字符串原始数据 = " " ;
字符串最终数据 = " ";
UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() { //定义一个在读取数据时触发的回调。
@覆盖
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);
}
我正在尝试使用 USB 串行通信将 Arduino ADC 数据发送到 android 平板电脑。我在 arduino 端使用 Serial.println()
。我的问题是我无法解码在 android 端接收到的数据。
对于例如。假设我从 arduino 发送 Serial.println(768)
,我检查我的 android 接收缓冲区,它显示 (55,54,56,13,10)。
如何将此数据解码回 768 值?
调查 ASCII table 你会发现
55,54,56,13,10
代表
"768\n\r"
大多数编程语言都提供了在字节值和 characters/strings 之间转换字节值及其字符串库的方法。所以你不必自己实现解码。
参考https://howtodoinjava.com/array/convert-byte-array-string-vice-versa/
或UTF-8 byte[] to String
或您在网上找到的任何其他 "byte to string Android"
字符串原始数据 = " " ; 字符串最终数据 = " "; UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() { //定义一个在读取数据时触发的回调。 @覆盖 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);
}