我在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在起作用吗?我欢迎任何建议如何找到问题所在。谢谢。
答案 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);