Help!!! libusb 调用libusb_control_transfer 出错,返回-9

linux下写了一个程序,给一个Usb设备发送数据,用的libusb的 libusb_control_transfer函数,如下
r = libusb_control_transfer(handle, LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_ENDPOINT_OUT, 0x04, 0x07, 0, (unsigned char*)lpBuffer, nNum
berOfBytesToWrite, 0);
返回值为-9,进去看了下是,
/** Pipe error */
LIBUSB_ERROR_PIPE = -9,

关于这个函数,在网上也没看到具体分析其返回值,参数等等的,我是按照网上的例子写的,同样调用这个函数 读取数据没错,不知道原因,求大神Help

图片说明

图片说明

usb_claim_interface( dev, 0 );   // 少了这句话而已    我弄的时候是这个问题   讲道理的话 应该你也是这个问题吧 

libusb_control_transfer