我正在尝试使用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;
}
1条答案
按热度按时间izj3ouym1#
尝试以管理员身份运行您的代码,为此,您可以执行以下操作:
1.像当前一样编译代码
1.点击键盘上的“Microsoft”键或开始菜单。
1.在搜索栏中键入:“cmd”(不按回车)
1.在你输入命令的地方的右边,你将有一个上下文菜单,点击“以管理员身份运行”
1.使用cd命令转到保存编译程序的目录(.exe文件)
1.键入.exe文件名(带或不带.exe后缀)并按Enter
如果这解决了你的问题,这意味着你的问题是没有以管理员权限运行程序。