我需要与一个自定义 USB 设备进行通信。它没有特定的驱动程序。该设备不显示为/dev/tty*
.
I 发现 http://www.signal11.us/oss/udev/我该如何使用libudev
枚举 USB 设备,假设我设法获得相应的struct udev_device
.
我不明白的是我怎样才能open(2)
设备,这样我就可以write(2)
to and read(2)
从中。
是否可以与通用 USB 设备通信、设置波特率并进行读/写?如果是这样,找到设备后我应该打开什么“文件”libudev
?如果没有,是否需要编写内核级驱动程序?
libusb http://www.libusb.org/是一个理想的选择。还有您所描述的这种情况的几个例子 https://github.com/libusb/libusb/tree/master/examples.
就您而言,您只需要:
- 创建默认上下文。
- 请求设备列表。
- 搜索具有所需供应商/产品 ID 的设备。
- 打开设备,然后通过同步 http://libusb.sourceforge.net/api-1.0/group__syncio.html or 异步 http://libusb.sourceforge.net/api-1.0/group__asyncio.htmlI/O 调用。
- 清理请求的设备列表。
- 完成后,关闭设备句柄并销毁上下文。
这使您可以相对轻松地编写用户空间应用程序/库。我已将其与麦克风、相机和 DIY 硬件(我构建的迷你装配线设备)一起使用,并取得了相当大的成功。邮件列表上的开发人员也非常有帮助 http://www.libusb.org/wiki/MailingList,但如果一两个成员的帖子写得不完美,他们往往会对新成员有些刻薄。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)