读取USB中断数据

时间:2011-03-04 01:47:05

标签: c# .net usb libusb

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

  

可以从中获取中断数据   加速度计通过USB-HID   接口端点83(在EP83中)。数据   与...的格式很小   以下字段(x,y,z,Vbat,CpuTemp。)   每62.5ms(16Hz)获取数据。   有一些USB HID“得到”和   “set”报告可用(通过ep0)

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果是HID设备,我建议您使用Windows的默认驱动程序 - hid.dll,我使用它并且没关系。这样你就不应该关心部署驱动程序了,无论如何它都在那里,你只需要理解API并使用它。为此,我建议您使用Jan Axelson书USB Complete,她有很好的解释和样本,它是C / C ++和C#的混合物,但趋势是针对.net而且她有一个HID Page她的网站,你找到了你需要的代码样本。