我想使用Usb4Java的低级API向USB设备(Arduino控制器)发送一个包,但我收到以下错误:
org.usb4java.LibUsbException: USB error 9: Pipe error以下是关键部分的代码:
ByteBuffer buffer = ByteBuffer.allocateDirect(8);
buffer.put(new byte[] {'a', 'b', 'c'});
int transfered = LibUsb.controlTransfer(handle,
(byte) (LibUsb.REQUEST_TYPE_CLASS | LibUsb.RECIPIENT_INTERFACE),
(byte) 0x09,
(short) 256,
(short) 0,
buffer,
1000);
System.out.println(transfered);
if (transfered < 0){
throw new LibUsbException("Control transfer failed", transfered);我认为它可能与驱动程序相关,也可能与LibUsb.controlTransfer(...);的参数相关,也许值得一提的是:源代码机器正在运行Windows 7。
发布于 2016-09-13 08:38:39
libusb对控制传输中的错误表示如下:
“如果设备不支持控制请求,则为LIBUSB_ERROR_PIPE”
看起来您试图发送的控件传输不受支持。也许这不是控制器所期望的命令。
https://stackoverflow.com/questions/39454109
复制相似问题