当前位置: 首页 > 工具软件 > Java USB > 使用案例 >

usb4java_使用java(usb4java)从libusb中的usb设备读取数据

徐昊焜
2023-12-01

我使用libusb api从java中的usb设备读取数据。我能够将数据写入设备但我无法从设备读取数据。我可以读取第一个数据组(大小:1个字节)但是当我想读取第二个数据组(大小:2个字节)时我得到超时错误(USB错误7:控制传输失败:操作超时)

我的代码就是这样;

buffer = ByteBuffer.allocateDirect(1);

//03

LibUsb.controlTransfer(handle,(byte) (LibUsb.REQUEST_TYPE_VENDOR | LibUsb.ENDPOINT_IN), (byte) 0xdb, (short) 0, (short) 0, buffer, 0);

//00 04

buffer.rewind();

buffer = ByteBuffer.allocateDirect(2);

transferred = LibUsb.controlTransfer(handle,(byte) (LibUsb.REQUEST_TYPE_VENDOR | LibUsb.ENDPOINT_IN), (byte) 0xf0, (short) 0x1c30, (short) 0, buffer, 0);

if(transferred < 0){

throw new LibUsbException("Control Transfer Failed", transferred);

}

我用C语言实现了这种数据传输,但我必须在java中实现。请帮帮我。

编辑:我正在更改超时但我的应用程序没有变化。

编辑:我可以读取1字节数据。当我想读取2字节数据时,我收到错误。

 类似资料: