由于公司的产品,导致我在Linux下写usb通信的代码出现了许多的问题,最后发现这些设备只能通过控制传输来操作设备,所以后面的问题就迎刃而解了。现在贴上当时在QT下写的代码,以防日后再碰到此类问题的时候翻查。
还有在QT下使用libusb库的时候一定要在(项目名.pro)文件加上:
INCLUDEPATH += /usr/include/libusb-1.0
LIBS += -L"/usr/lib/x86_64-linux-gnu" -lusb-1.0
否则程序无法找到该库的路径。
libusb_device **devs;
libusb_device_handle *dev_handle;
libusb_context *ctx=NULL;
struct libusb_device_descriptor desc;
int r;
ssize_t cnt;
r=libusb_init(&ctx);
if(r<0)
{
//printf("init error");
QMessageBox::about(this,"haha","initialerror");
return ;
}
libusb_set_debug(ctx,3);
//cnt=libusb_get_device_list(ctx,&devs);
dev_handle=libusb_open_device_with_vid_pid(ctx,VID,PID);
if(dev_handle==NULL)