无法在C中打开带有vid-pid libusb-1.0的USB设备

anauzrmj  于 2023-04-19  发布在  其他
关注(0)|答案(1)|浏览(237)

我正在尝试使用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;
}
izj3ouym

izj3ouym1#

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

相关问题