qg777钱柜误乐

热门关键词: qg777钱柜误乐

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

请教大神们个问题:我用的是Androidandroid.hardware.usb包,我想实现的需求是:一个U盘插在我的Android设备上的USBHost口,1.能检测到U盘2.在我的程序里界面上能显示U盘的内容。现在确实能检测到U盘,第一条实现了第2条还没实现,我还没想到怎么遍历U盘里文件或文件夹UsbDeviceAPI里有两种数据传输方法1.controlTransfer(intrequestType,intrequest,intvalue,intindex,byte[]buffer,intlength,inttimeout)Performsacontroltransactiononendpointzeroforthisdevice.2.bulkTransfer(UsbEndpointendpoint,byte[]buffer,intlength,inttimeout)Performsabulktransactiononthegivenendpoint.这两种方法也只是传输数据,要实现我说的显示U盘的内容怎么实现那?请大神指教下

图片 1

字节流Stream操作单元是字节,按流的方向分为字节输入流InputStream和字节输出流OutputStream。

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

**InputStream**

是所有字节输入流的父类,包含两个核心方法:

intread()从流中一次读取一个字节,返回类型虽然为四个字节的int型,实际上只填充最后一个字节,前三个都为0。

intread(byte[] buffer)从流中连续读取多个可用字节,最不超过buffer.length中缓冲在buffer数组中,返回实际读取字节数量。

OutputStream**

是所有字节输出流的父类,包含两个核心方法:

void write(intn)将参数最后一个字节输出到流中。

void write(byte[] buffer,intoffset,intlength)将缓冲在buffer数组的字节信息从索引offset开始连接取length个输出到流中。

本文以File作为输入和输出目标和源介绍文件字节输入流FileInputStream和FileOutputStream这两个流类来复制d:a.jpg至e:a.jpg。。

示例代码:

publicstaticvoidmain(String[]args) {

FileInputStreamfis=null;

本文由qg777发布于操作系统,转载请注明出处:android使用CH34xUARTDriver.jar读取串口数据乱码

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。