用libusb实现插拔usb设备
时间: 2023-08-17 12:22:52 浏览: 229
libusb_example_libusb_USB通信_
5星 · 资源好评率100%
使用libusb库可以很方便地实现插拔USB设备的功能。下面是一个简单的使用libusb库的示例程序,可以实现USB设备的插拔检测。
1. 包含头文件
```
#include <stdio.h>
#include <stdlib.h>
#include <libusb-1.0/libusb.h>
```
2. 初始化libusb库
```
libusb_init(NULL);
```
3. 设置日志级别
```
libusb_set_debug(NULL, LIBUSB_LOG_LEVEL_WARNING);
```
4. 枚举USB设备
```
libusb_device **devs;
ssize_t cnt = libusb_get_device_list(NULL, &devs);
if (cnt < 0) {
fprintf(stderr, "Failed to get device list\n");
return 1;
}
```
5. 遍历USB设备列表,获取设备描述符
```
for (int i = 0; i < cnt; i++) {
libusb_device *dev = devs[i];
struct libusb_device_descriptor desc;
int r = libusb_get_device_descriptor(dev, &desc);
if (r < 0) {
fprintf(stderr, "Failed to get device descriptor\n");
continue;
}
printf("Vendor ID: %04x, Product ID: %04x\n", desc.idVendor, desc.idProduct);
}
```
6. 释放设备列表
```
libusb_free_device_list(devs, 1);
```
7. 反初始化libusb库
```
libusb_exit(NULL);
```
以上代码仅为示例,实际的应用中需要根据具体需求来进行修改。
阅读全文