使用libusb开发库可以很方便的与usb通信。
在使用这个库之前需要做几件事情
1.libusb的安装
在ubuntu中使用sudo apt-get isntall libusb* 可以快速的安装,如果想选择性的安装则使用sudo apt-cache search libusb查看要安装的软件包,然后sudo apt-get install ...进行安装
2.确定供应商id 和 产品id,通过这两个id可以确定我们的usb设备
使用lsusb命令查看,然后使用libusb -v查看具体信息
3 确定传输方式、输入端点、输出端点
命令同2
我的usb是bulk传输方式、输入端点0x86,输出端点0x02
4.在项目中添加添加库 -lusb
不添加的话会出现找不到函数的问题,如果提示找不到usb.h文件很可能是你没安装好libusb库
5.软件完成之后要使用sudo运行程序,不然usb_bulk_write之类的函数会调用失败。
6.附上官网地址和帮助文档
官网:http://www.libusb.org/
帮助文档:http://libusb.sourceforge.net/doc/
下面看一下bulk的使用例子:
usbhelper.h
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <usb.h> 4 #include <QtCore/QObject> 5 #include <QtCore/QString> 6 #include <QtCore/QStringList> 7 class UsbHelper : public QObject 8 { 9 Q_OBJECT 10 public: 11 UsbHelper(); 12 ~UsbHelper(); 13 14 bool InitUsb(); 15 16 bool WriteData(const QString& pBuffer); 17 18 bool ReadData(QString &pBuffer); 19 20 bool WaitResponse(int pTimeout, QStringList &pResponseList); 21 22 void CloseUsb(); 23 24 bool SendCommand(const QString &pCommand, QStringList &pResponseList); 25 private: 26 usb_dev_handle *mUsbHandle; 27 struct usb_device *mUsbDev; 28 };