如何枚举USB设备*和*读取/写入它们?

时间:2015-09-22 15:50:25

标签: c linux usb udev

我需要与之通信的自定义USB设备。它没有特别的驱动力。设备未显示为/dev/tty*

found out我如何使用libudev枚举USB设备,让我说我设法得到相应的struct udev_device

我无法弄清楚我是如何open(2)设备的,write(2)read(2)来自它。

是否可以与通用USB设备通信,设置波特率并只读/写?如果是这样,我找到libudev设备后应该打开哪个“文件”?如果没有,是否需要编写内核级驱动程序?

1 个答案:

答案 0 :(得分:1)

libusb是理想的选择。还有several examples for such a case as you described

在您的情况下,您只需要:

  • 创建默认上下文。
  • 申请设备清单。
  • 搜索具有所需供应商/产品ID的设备。
  • 打开设备,然后通过synchronousasynchronous I / O电话进行通信。
  • 清理请求的设备列表。
  • 完成后,关闭设备句柄并破坏上下文。

这使您可以相对轻松地编写用户空间应用程序/库。我已将它用于麦克风,相机和DIY硬件(我已经制造的迷你流水线设备)并取得了相当大的成功。 The devs on the mailing list are also very helpful,尽管如果他们的帖子写得不完整,一两个研究员往往会对新成员有些刻薄。