libusb demo
时间: 2024-06-16 09:04:40 浏览: 149
libusb是一个用于访问USB设备的开源库,它提供了一组函数和工具,可以在不同的操作系统上进行USB设备的控制和通信。下面是一个简单的libusb demo示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <libusb-1.0/libusb.h>
int main() {
libusb_context *ctx = NULL;
libusb_device **devs = NULL;
ssize_t count = 0;
// 初始化libusb
if (libusb_init(&ctx) != LIBUSB_SUCCESS) {
printf("Failed to initialize libusb\n");
return 1;
}
// 获取已连接的USB设备列表
count = libusb_get_device_list(ctx, &devs);
if (count < 0) {
printf("Failed to get USB device list\n");
libusb_exit(ctx);
return 1;
}
// 遍历设备列表并打印设备信息
for (ssize_t i = 0; i < count; ++i) {
libusb_device *dev = devs[i];
struct libusb_device_descriptor desc;
if (libusb_get_device_descriptor(dev, &desc) != LIBUSB_SUCCESS) {
printf("Failed to get device descriptor\n");
continue;
}
printf("Device %d: VendorID=0x%04x, ProductID=0x%04x\n", i+1, desc.idVendor, desc.idProduct);
}
// 释放设备列表
libusb_free_device_list(devs, 1);
// 关闭libusb
libusb_exit(ctx);
return 0;
}
```
上述示例代码使用libusb库来获取已连接的USB设备列表,并打印每个设备的Vendor ID和Product ID。你可以根据自己的需求,使用libusb库进行更多的USB设备控制和通信操作。
阅读全文