4

更新 2:

我已经通过短接其 IN 和 OUT 引脚对 FTDI 芯片进行了测试。controlTransfer()总是返回 0,返回发送的bulkTransfer() - Write数据长度并 bulkTransfer() - Read返回发送的任何数据。

有人知道如何或在哪里可以找到 Prolific 的驱动程序吗?



更新 1:

我用 Slick USB 2 做了一些测试,我想我找到了我的问题。看起来我缺少一些驱动程序,因为通信无法正常工作。

我将我的开发板连接到 Slick USB 2,然后尝试使用我的应用程序连接并打印“打开设备并声明:false,file = 45,test = null”。我再次尝试,通信开始工作。我能够按预期写入和读取数据。此外,当我重新连接电缆时,通信停止工作。

我猜,Slick USB 2 正在安装一些通信所需的驱动程序。

有谁知道我在哪里或如何找到这个驱动程序?



我希望我的 Android 设备(Galaxy Tab 2.0 7",版本 4.0.3)与定制板通信。为此,我使用 OTG 电缆 + USB 到串行转换器(多产)。

我已经测试了与 Slick USB 2 应用程序的通信,一切正常。

现在,我正在尝试使用 USB Host API 创建自己的应用程序。我添加了意图过滤器,当我连接我的电路板时,它也会被识别。我正在使用以下代码:

UsbDevice usbDevice;    // contains device from intent-filter
Context context;        // activity object

UsbManager manager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
Toast.makeText(context, "usb device perm: " + manager.hasPermission(usbDevice), Toast.LENGTH_LONG).show();

UsbInterface interfaceUsb = usbDevice.getInterface(0);

UsbDeviceConnection connection = manager.openDevice(usbDevice);
boolean resClaim = connection.claimInterface(interfaceUsb, true);
Toast.makeText(context, "open device and claim: " + resClaim + ", file = " + connection.getFileDescriptor() + ", test = " + connection.getSerial(), Toast.LENGTH_LONG).show();
// Prints "open device and claim: true, file = 45, test = null"

int result = connection.controlTransfer(0x40, 0x03, 0x0034, 0, null, 0, 0); //  set baudrate 57600

Toast.makeText(context, "result: " + result, Toast.LENGTH_LONG).show();     // returns -1

int resultWrite = connection.bulkTransfer(endpointUsbWrite, new byte[]{'a'}, 1, 1000);
byte[] bytesRead = new byte[64];
int resultRead = connection.bulkTransfer(endpointUsbRead, bytesRead, bytesRead.length, 1000);
// resultWrite returns 1, resultRead returns -1

controlTransfer()总是返回-1 。我也尝试过bulkTransfer() - write,它返回发送的数据的长度,但板子没有收到任何数据。bulkTransfer() - read返回 -1

我已经做了一个测试,我将我的开发板连接到我的应用程序并尝试连接到 Slick USB 2 应用程序并且 Slick USB 2 能够连接到我的开发板 - 这真的不应该工作。我想,我无法正确打开设备。

我在这里想念什么?我检查了许多线程,但未能解决问题。有人可以提出一些建议吗?

4

1 回答 1

0

Prolific 为 PL2303 开发了 Android SDK。您可以从以下网址下载并试用: https ://play.google.com/store/apps/details?id=tw.com.prolific.app.pl2303terminal

您也可以从 Prolific 的官方网站获得支持。

于 2013-09-25T10:44:15.807 回答