本文实例源码下载:https://download.csdn.net/download/u010875635/10689926
使用libusb可以实现通用的usb通信,但是实现较为复杂,可以使用hidapi来封装一层,通过hidapi调用libusb。
具体流程如下:
1、编译libusb
下载地址:https://sourceforge.net/projects/libusb/files/libusb-1.0/
编译时,要加 --disable-udev参数,我们不使用这个lib
若是给本机使用:
./configure --prefix=/opt/libusb1.0 --disable-udev
make
make install
若是交叉编译给arm开发板用
./configure --build=i686-linux --host=arm-linux --prefix=·pwd·/install CC=arm-linux-gcc CXX=arm-linux-g++ --disable-udev
make
make install
2、复制lib到系统lib环境中
cp /opt/libusb1.0/lib/libusb-1.0.so* /usr/lib
3、使用hidapi
下载地址:https://github.com/signal11/hidapi/downloads,下载0.7版本
解压之后会发现里面有很多文件夹,例如hidapi, hidtest, linux, windows,其中hidapi是共用部分,linux下面有makefile,可以编译出linux下可以使用的hid读写的hidtest程式,读写的对象是vid为0x04d8,pid为0x003f。
编译demo需要修改makefile以支持我们编译的libusb路径查找。
修改内容如下:
#LIBS = '`pkg-config libusb-1.0 libudev --libs`'
LIBS = -L"/usr/lib/x86_64-linux-gnu" -lusb-1.0 -lpthread
#INCLUDES = -I../hidapi `pkg-config libusb-1.0 --cflags`
INCLUDES = -I../hidapi -I/opt/libusb1.0/include/libusb-1.0
然后make & make install
如果使用Qt,则复制3个文件&