如何最正确地使用libusb与连接的USB设备通信?
具体来说,如何将数据传输到USB设备,从设备接收信息,找出所连接设备的名称,是否有存储等.
更具体地说,我将在Mac OS X机器上运行它,所以我知道我不能只使用Windows头文件.
如果对libusb和USB设备有一个很好的解释,这也会有所帮助.
小智 10
我在这里找到了关于使用libusb-1.0的文本方法:http://www.dreamincode.net/forums/topic/148707-introduction-to-using-libusb-10/
这是一篇类似的问题的帖子,可能对您有用.我提供了很多链接.
但也许你宁愿在这里看到它.那么在这种情况下,它就在这里!
Libusb允许您枚举设备并根据特定的供应商/产品ID(V/P Id)选择所需的设备.如果您不知道这一点,并且无法通过产品描述在线找到它,那么您可以轻松找到它.
如果它不在线,您将需要在Linux上使用类似于lsusb的应用程序.(我不相信它是在Mac上.)当你运行lsusb时,它会列出连接的设备及其V/P ID.您可以通过拔出,运行lsusb并重新插入设备并进行比较来轻松找到您的设备.很简单的.Mac上的任何usb列表应用程序都希望像lsusb一样显示V/P ID.
然后,一旦获得此V/P ID,您将使用libusb(如果使用0.1)枚举所有设备并找到与该ID匹配的设备.(我支持使用libusbx,它恰好有一个基于V/P id的查找设备功能 - 实际上,libusbx更加简洁.)
选择设备后,您将使用功能或输出报告发送数据包.这是最复杂的部分,因为您发送的数据包取决于我认为的单个设备.它是8个字节的数据,其中只有一个是您希望发送到USB设备的单个字符.(如果要发送8个字符,则必须循环遍历字符数组并为每个字符发送功能或输出报告.)
作为一个例子,请随意参考我为控制两个LED 而编写的一个相当具体的终端示例.如果它有用,太棒了!它包含一个libusbx和libusb-0.1示例.
我希望这有帮助!
libusb 1.0(较新的推荐版本)的官方网站是https://libusb.info/。API 文档位于http://api.libusb.info。单击“模块”部分可浏览不同的功能区域。源代码位于https://github.com/libusb/libusb ,您可以在https://github.com/libusb/libusb/tree/master/examples看到一些工作示例。希望有帮助!
@user2469202 的文章也是一个很好的基本介绍。
| 归档时间: |
|
| 查看次数: |
28501 次 |
| 最近记录: |