获取usb摄像头的pid vid,写出程序
时间: 2024-01-24 20:03:06 浏览: 211
C#获取usb设备VID和PID
以下是使用libusb库编写的一个简单C程序,用于获取USB摄像头的PID和VID:
```c
#include <stdio.h>
#include <stdlib.h>
#include <libusb-1.0/libusb.h>
int main() {
// 初始化libusb库
libusb_init(NULL);
// 打开摄像头设备
libusb_device_handle *dev_handle = libusb_open_device_with_vid_pid(NULL, vendor_id, product_id);
if (dev_handle == NULL) {
fprintf(stderr, "无法打开设备\n");
return 1;
}
// 获取设备描述符
struct libusb_device_descriptor desc;
int ret = libusb_get_device_descriptor(libusb_get_device(dev_handle), &desc);
if (ret < 0) {
fprintf(stderr, "无法获取设备描述符\n");
libusb_close(dev_handle);
return 1;
}
// 打印PID和VID
printf("VID: %04x\n", desc.idVendor);
printf("PID: %04x\n", desc.idProduct);
// 关闭设备和libusb库
libusb_close(dev_handle);
libusb_exit(NULL);
return 0;
}
```
在程序中,我们首先使用`libusb_init()`函数初始化libusb库。然后,使用`libusb_open_device_with_vid_pid()`函数打开摄像头设备,其中`vendor_id`和`product_id`需要替换为你摄像头的实际VID和PID。
接下来,我们使用`libusb_get_device_descriptor()`函数获取设备描述符,并从中提取出PID和VID。最后,我们关闭设备句柄,并调用`libusb_exit()`函数释放libusb库相关资源。
请注意,为了编译此程序,你需要安装libusb库和相应的开发包,并在编译时链接libusb库。
希望这个程序对你有帮助!如有任何进一步的问题,请随时提问。
阅读全文