文章目录
libusb库
官方文档
下载
- github
- sourceforge
brew install libusb-compat libusb
- MAC PORTS方式下载
安装
MAC
打开终端,并定位到libusb-1.0.26
./configure
make
sudo make install
引入项目
-
获取libusb的dylib、.h文件
/usr/local/include/libusb-1.0/libusb.h
/usr/local/lib/libusb-1.0.0.dylib -
链接动态库
# 添加动态库的目录
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Include)
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/Lib)
# 链接库
target_link_libraries(src PRIVATE libusb-1.0.0.dylib)
基础操作
初始化 & 退出
void OpenUsb()
{
// 初始化
libusb_init(nullptr);
// ... 执行读写USB设备的操作 ...
// 退出libusb
libusb_exit(nullptr);
}
获取所有设备列表
//在list里寻找需要访问的设备(list的最后一项是NULL),找到之后使用libusb_open函数打开它
ssize_t API_EXPORTED libusb_get_device_list(libusb_context *ctx,
libusb_device ***list);
// .......其它处理.......
// 最后必须调用libusb_free_device_list()来释放它
void API_EXPORTED libusb_free_device_list(libusb_device **list,
int unref_devices);
libusb_device **devs;
ssize_t cnt = libusb_get_device_list(NULL, &devs);
// .......其它处理.......
libusb_free_device_list(devs, 1);
打开/关闭设备
// libusb_open()函数内部会增加此设备的引用计数, 使用完毕后要调用libusb_close()减小引用计数。
int API_EXPORTED libusb_open(libusb_device *dev,
libusb_device_handle **dev_handle);
...
void API_EXPORTED libusb_close(libusb_device_handle *dev_handle);
libusb_device_handle *handle; // 设备句柄
r = libusb_open(dev, &handle);
...
// 关闭设备
libusb_close(handle);
其它资料
USB系列-LibUSB使用指南(1)-Windows下的报错与踩坑
MAC API:IOKit
PS: windows API驱动控制
设备名称
\\.\XXXUSB-0(PORT)