无法在 C 中使用 vid-pid libusb-1.0 打开 USB 设备

问题描述 投票:0回答:0

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

提前致谢!

c usb libusb-1.0
© www.soinside.com 2019 - 2024. All rights reserved.