android使用CH34xUARTDriver.jar读取串口数据乱码

schoolabcd 2019-03-22 02:27:16
项目需要使用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
}

}

然而显示的数据却是乱码。


不知道是字符转换的问题,还是线路存在干扰的问题,
肯请大神指导。
...全文
380 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧