Usb4Java:管道错误 (-9)
Usb4Java: Pipe Error (-9)
我想使用 Usb4Java 的 Low-Level 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(...);
的参数有关
也许值得 mentioning:The 源机是 运行 Windows 7.
libusb API 说了以下有关控制传输错误的信息:
"LIBUSB_ERROR_PIPE if the control request was not supported by the device"
您尝试发送的控制传输似乎不受支持。
也许这不是控制器所期望的命令。
我想使用 Usb4Java 的 Low-Level 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(...);
的参数有关
也许值得 mentioning:The 源机是 运行 Windows 7.
libusb API 说了以下有关控制传输错误的信息:
"LIBUSB_ERROR_PIPE if the control request was not supported by the device"
您尝试发送的控制传输似乎不受支持。 也许这不是控制器所期望的命令。