项目需要使用android采集串口设备的数据,硬件使用CH34X芯片的“USB转UART”,
当设备连接在计算机上时,读取数据是正常的。
在计算机上使用两种方式进行了读取:
方式一:使用Xshell
方式二:自行编写代码:
自己编写的读取代码为:
byte[] readBuffer = new byte[256];
while ((len = inputStream.read(readBuffer)) != -1) {
data = new String(readBuffer, 0, len).trim();
}
在android设备上使用时,要使用该硬件设备的驱动,驱动程序为CH34xUARTDriver.jar
读取数据的代码为:
byte [] buffer = new byte[256];
while(true){
Message nmeaMsg = Message.obtain();
if(!isOpen){
break;
}
int length = CH34Driver.ch34Driver.ReadData(buffer,256);
if(length >0){
String nmeaData = "";
nmeaData = new String(buffer,0,length);
nmeaMsg.obj = nmeaData;
handler.sendMessage(nmeaMsg);//负责更新UI
}
}
然而显示的数据却是乱码。
不知道是字符转换的问题,还是线路存在干扰的问题,
肯请大神指导。