【问题标题】:Read USB interrupt data读取 USB 中断数据
【发布时间】:2011-07-08 12:13:47
【问题描述】:

我有一个使用 libusb WIN32 驱动程序的 USB 设备和

中断数据可从 通过 USB-HID 的加速度计 接口端点 83(在 EP83 中)。数据 是小结尾格式 以下字段(x、y、z、Vbat、CpuTemp。) 每 62.5ms (16Hz) 采集一次数据。 有许多 USB HID “get” 和 "set" 可用报告(通过 ep0)

如何通过 .NET 和 C# 访问这些数据?

【问题讨论】:

标签: c# .net usb libusb


【解决方案1】:

libusb32 是通用 USB 驱动程序的 c/c++ 库。它有 2 层。内核模式下的底层是通用客户端驱动程序 libusb0.sys + .inf 文件,您可以更改它,它会告诉什么设备上传这个通用 USB 驱动程序。他们有 inf-wizard.exe 工具可以帮助您制作这个 .inf 文件为您的设备。用户空间的上层是与 libusb 驱动程序对话的 libusb.lib(您也可以创建静态链接)。您可以在源代码中找到 usb.h,它实际上定义了您的代码和 USB(USB 驱动程序)之间的接口。要访问非托管代码,或者您应该在 c# 或 c++/cli 中编写您的互操作层,或者使用某人制作的现成层。这里是其中一个项目的链接,http://sourceforge.net/projects/libusbdotnet/ 如何使用 libusb 库我建议您从它们中查看一些示例。通常它就像你打开 USB 总线的句柄,然后通过 VendorId 和 ProductId 找到你的设备,得到它的句柄。然后对设备的端点进行写/读。

【讨论】:

    【解决方案2】:

    如果是HID设备,我推荐你使用Windows的默认驱动——hid.dll,我用过,没问题。这样一来,您不必关心还部署驱动程序,反正它就在那里,您只需要了解 API 并使用它。为此,我向您推荐 Jan Axelson 的书 USB Complete,她在那里有很好的解释和示例,它是 C/C++ 和 C# 的混合体,但趋势是针对 .net 的,她在她的网站和那里也有一个 HID Page您会找到您需要的代码示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多