如何与 Windows 上的 USB-HID 设备通信?

Posted

技术标签:

【中文标题】如何与 Windows 上的 USB-HID 设备通信?【英文标题】:How to communicate to USB-HID device on windows? 【发布时间】:2013-08-10 06:04:38 【问题描述】:

我不是 Windows 专家,也没有 Windows 驱动程序的开发经验,但在 Linux 中也做过同样的事情。

我的系统: 我有一个被 Windows 识别为数字化仪的 HID 设备(触摸屏),并且一切正常(不需要额外的驱动程序)。 HID 使用接口 0 和基于中断的 IN 端点(就像在任何 HID 设备中一样),并且触摸信息在此接口上发送到 Windows。我有另一个接口 1,它有一个 OUT 和 IN 中断端点,可以发送 64 字节的数据。作为所有 USB 设备,我有 End Point 0 来发送控制传输。

我的问题 我必须通过接口 0、接口 1 和控制端点与此设备通信,以升级触摸芯片的固件和一些诊断参数。 我在 Linux 中使用 libusb 轻松完成所有这些事情。但是windows我什么都做不了。也请在这里查看我的努力libusb_open returns 'LIBUSB_ERROR_NOT_SUPPORTED' on Windows 7

我想用 Qt 和一些基于 USB 的驱动程序构建一个工具。任何人都可以请建议我可以用于 USB 通信的最佳接口吗?有什么方法可以使用 MINGW 吗?

【问题讨论】:

【参考方案1】:

你可以使用libusb-win32,它的API兼容Linux中的libusb-0.1。但是您必须安装驱动程序 - 在您的情况下,您可能需要驱动程序的过滤器版本,以便能够像往常一样在您的操作系统中使用 HID 功能。 Libusb-win32 附带一个用于创建驱动程序的向导,它将为设备生成.inf 文件。

驱动程序安装会很棘手:不会提示用户为 HID 兼容设备安装驱动程序。

【讨论】:

以上是关于如何与 Windows 上的 USB-HID 设备通信?的主要内容,如果未能解决你的问题,请参考以下文章

MicroPython开发板TPYBoard关于USB-HID的应用

利用WHID为隔离主机建立隐秘通道

如何在 Windows 上的 c++ 中获取设备的父级?

C++屏蔽键盘,而保留扫描枪,如何写代码?

如何将我的IP通知给我网络中的其他设备

如何在windows pc和android设备之间建立蓝牙连接