1

我在 Win 10 上的 Visual Studio 2017 中使用最新的 LibUsbDotNet nuget 包。对于具有 2 个中断端点和 1 个批量 IN 端点的全速 USB 设备,我使用 zadiq 2.4 实用程序安装了 WinUSB 驱动程序。

当 UsbDevice.AllDevices 被调用时,LibUsbDotNet 可以看到我的设备。

但是,它无法使用以下方法打开我的设备:

UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(VID, PID);
UsbDevice MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);

MyUsbDevice 为空,不抛出异常。

我还尝试安装不同的驱动程序(libusbk 和 libusb-win32),但没有成功。

前段时间,我编写了一个 C++ 应用程序来使用 libusb 库与我的 USB 设备进行通信——从那时起它就可以正常工作了。

有没有人可以确认 libusbdotnet 是工作产品?我欢迎任何建议如何找出问题所在。谢谢。

4

2 回答 2

1

这是 中的一个错误UsbDeviceFinder,其中int.MaxValue使用而不是null忽略一个值。这使得UsbDeviceFinder无法使用,并且所有使用它的示例都不起作用。

解决方法是使用

MyUsbDevice = context.Find(device => device.ProductId == ProductId && device.VendorId == VendorId);

代替

MyUsbDevice = context.Find(MyUsbFinder);

于 2019-04-19T14:25:31.967 回答
0

首先使用设备管理器、输入设备、详细信息然后硬件 ID 找到您的供应商 ID 和产品 ID。

接下来,您需要下载 LibUsbDotNet_Setup.2.2.8.exe 并运行安装程序。在设置过程中,您应该启用过滤器并根据您的供应商 ID 选择您的输入设备。然后您的代码将在之后找到该设备

于 2018-10-18T17:58:18.513 回答