linux 窗口驱动程序如何从硬件发送和接收数据

t3irkdon  于 12个月前  发布在  Linux
关注(0)|答案(1)|浏览(132)

当为连接到usb总线的硬件创建windows(或Linux)驱动程序时,如何与usb端口进行通信?
是否打开一个文件(管道)到相应的usb端口或使用其他方法?

wj8zmpe1

wj8zmpe11#

要与Windows或Linux驱动程序中的USB端口通信,可以使用WinUSB API(Windows)或ioctl函数调用(Linux)。在Windows中,WinUSB API允许您打开设备的文件句柄,并获得后续操作所需的句柄。此句柄存储在device.h文件中定义的结构(DEVICE_DATA)中。一旦句柄获得后,驱动程序可以执行操作,如阅读和写入数据到批量和中断端点。
对于Linux,您可以使用ioctl函数调用特殊文件进行USB设备通信。在您的程序中,您可以使用open("/dev/ttyUSB0", O_RDWR)打开相应的文件,然后使用writeread函数通过USB端口发送和接收字符。Matt Cutts详细 * 如何在Linux中编译简单USM程序 * 在他的blog
对于Windows,请阅读Connect USB devices,其中也谈到了Linux中的USBIP工具。

相关问题