我正在尝试使用 C 和 libusb-1.0 在 Windows 10 上学习 USB 处理。对于初学者,我能够使用
libusb_init()
函数成功初始化库。我已经验证了返回代码为 0 的初始化。接下来我尝试使用 libusb_open_device_with_vid_pid()
函数并将该函数的返回值存储在提供的 libusb_device_handle 结构中。由于某种原因,此函数的返回值始终为 NULL。我尝试使用 libusb_get_device_list()
功能打印设备列表,并且在那里检测到我的 Arduino Nano 具有正确的 VID 和 PID(从 Windows 设备管理器验证)。
谁能告诉我这里出了什么问题?
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <assert.h>
#include "include/libusb-1.0/libusb.h"
#define VID 0x1A86
#define PID 0x7523
int main(void)
{
int status = 0;
libusb_device_handle* dev = NULL;
system("cls");
printf("Initializing libusb...\n");
status = libusb_init(NULL);
if(status != 0)
{
printf("\nCannot Initialize libusb!!\n");
return 0;
}
printf("\nlibusb Initialized Successfully...\n");
dev = libusb_open_device_with_vid_pid(NULL, VID, PID);
if(dev == NULL)
{
printf("\nError!! Could Not Find USB Device!\n");
libusb_exit(NULL);
return 0;
}
printf("\nUSB Device Found...\n");
libusb_exit(NULL);
return 0;
}
提前致谢!