📚 开源资源分享——颜佐光的个人书架
✉️ 联系站长
书架 / Android / 串口

Android controlTransfer 参数解析

2020-09-15 18:20 · 约 1,154 字 · 浏览 2,946 次 · 更新 2020-09-15 18:21串口

Android controlTransfer 参数解析

最近在做Android和pl-2303的通信试验,作为USB host功能的应用,必须要用到android.hardware.usb的内容,USB设备的识别、监测试验是很简单,有很多的资料可以借鉴。但是对于实现USB和pl-2303通信的部分讲的不是很清楚,我也是花了很长的时间在寻找资料。其中最重要的就是配置pl-2303的波特率、停止位、校验位和数据位个数,为了找到设置的方法我反编译了我在网上下载的“Free串口终端.apk”和prolific 公司提供的“pl2303Driver.jar”。慢慢的我发现我的重心集中到了controlTransfer()上,一开始我总是以为prolific公司没有提供具体的资料介绍怎样给pl2303编程,后来我发现其实这是USB协议里的标准。

controlTransfer的参数有requestType、request、value、index、buffer、length和timeout。

其中比较难于理解的是前四个:
Android controlTransfer 参数解析

  • requestType设置的是通信的方向,pl-2303的设置中常见的设置值有:33,64,192
  • request设置的是访问的类型,pl-2303的设置中常见的设置值有:32,06,1

Android controlTransfer 参数解析

  • value根据不同的请求而设置不同的值,一般就是传送参数给设备标明这是什么请求。在GET_DESCRIPTOR获取设备描述符里,它的值是00 01。在GET_DESCRIPTOR里这个字段的低字节表示描述符的索引,高字节表示描述符的类型,高字节的类型如下

Android controlTransfer 参数解析

index可将请求专属星系传递给设备,有两个字节。典型的应用是传递索引或者诸如接口或端点号的偏移量.举例在程序中见到的设置:

connection.controlTransfer(33,32,0,0,portseting,7,100);
← 返回《Android》目录书架 →