首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何最恰当地使用libusb来与连接的USB设备通信?

如何最恰当地使用libusb来与连接的USB设备通信?
EN

Stack Overflow用户
提问于 2013-06-22 00:00:08
回答 4查看 39.4K关注 0票数 23

如何最恰当地使用libusb与连接的USB设备通信?

具体地说,我如何将数据传输到USB设备,从设备接收信息,找出连接的设备的名称,如果它们有存储,等等。

更具体地说,我将在Mac-OS-X机器上运行它,所以我知道我不能只使用Windows头文件。

如果有关于libusb和USB设备的很好的解释,那也会很有帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-26 17:20:22

我在这里找到了一个关于使用libusb-1.0的文本方法:http://www.dreamincode.net/forums/topic/148707-introduction-to-using-libusb-10/

票数 14
EN

Stack Overflow用户

发布于 2013-07-16 23:36:55

Here是一篇关于类似问题的帖子,可能对你有用。我包含了大量的链接。

但也许你更愿意在这里看到它。因此,在这种情况下,它开始了!

Libusb允许您枚举设备并根据特定的供应商/产品id (V/P Id)选择您想要的设备。如果你不知道这一点,并且在网上找不到产品描述,那么你可以很容易地找到它。

如果它不在线,您将需要使用一个类似于Linux上的lsusb的应用程序。(我不相信它在Mac上。)运行lsusb时,它会列出连接的设备及其V/P Ids。您可以通过拔出、运行lsusb、重新插入设备并进行比较来轻松找到您的设备。这相当简单。Mac上的任何usb列表应用程序都有望像lsusb一样显示V/P ID。

一旦您有了这个V/P id,您将使用libusb (如果使用0.1)来枚举所有设备,并找到与该ID匹配的设备。(我支持使用libusbx,它恰好有一个基于V/P id的查找设备功能--事实上,libusbx要简洁得多。)

选择设备后,您将使用功能报告或输出报告发送数据包。这是最复杂的部分,因为您发送的数据包依赖于我认为的单个设备。它是8个字节的数据,其中只有一个是您希望发送到usb设备的单个字符。(如果要发送8个字符,则必须遍历字符数组,并为每个字符发送特征或输出报告。)

作为示例,请随意引用我为控制两个LEDS而编写的一个相当具体的终端example。如果对你有帮助,那就太好了!它包含一个libusbx和libusb-0.1示例。

我希望这能帮到你!

票数 8
EN

Stack Overflow用户

发布于 2015-11-19 15:30:07

您可以遵循的流程是:

  1. 获取您想要通信的设备的VID和PID,使用lsusb
  2. Try打开设备并读取设备描述符
  3. 如果您想要设备的名称,请使用字符串描述符获取该
  4. 检查是否附加了任何内核驱动程序。如果是,则将其分离并执行一些原始数据transfer
  5. After操作,再次获得响应并重新附加驱动程序。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17239565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档