LibUsbDotNet无法打开设备

时间:2018-09-19 11:43:01

标签: libusb libusbdotnet

我在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为null,不会引发异常。

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

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

有人可以确认libusbdotnet在起作用吗?我欢迎任何建议如何找到问题所在。谢谢。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

解决方法是使用

  

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

代替

  

MyUsbDevice = context.Find(MyUsbFinder);