我有一个使用 libusb WIN32 驱动程序和
中断数据可通过 USB-HID 接口端点 83(在 EP83 中)从加速度计获得。数据采用小端格式,具有以下字段(x、y、z、Vbat、CpuTemp。)每 62.5 毫秒(16 赫兹)采集一次数据。有许多 USB HID“获取”和“设置”报告可用(通过 ep0)
如何通过 .NET 和 C# 访问这些数据?
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 找到你的设备,得到它的句柄。然后对设备的端点进行写/读。
如果是 HID 设备,我建议你使用 Windows 的默认驱动程序 - hid.dll,我用过,没问题。这样你就不应该关心部署驱动程序,反正它就在那里,你只需要了解 API 并使用它。为此,我向您推荐 Jan Axelson 的书USB Complete,她在那里有很好的解释和示例,它是 C/C++ 和 C# 的混合体,但趋势是 .net 并且她在她的网站上有一个HID 页面,在那里你可以找到您只需要的代码示例。