Jas*_* Hu 4 linux usb drivers serial-port
我最近有一个关于通过 RS-232 线与特定设备进行通信的项目。由于我的计算机没有串行端口,因此我使用 USB 转 RS232 线作为设备和计算机之间的中间设备。但我是 Linux 驱动程序的新手,所以我很难理解它的想法。
我在 Debian 下工作,其中有一个默认的工作驱动程序,我已经测试了硬件方面可以完成的所有操作,发现一切都很好。现在的情况是如何在 C 中向设备发送命令并接收相应的数据。我读过一些书,我认为也许将 USB 端口映射为 tty 设备会起作用。
我的思考方式正确吗?我有点困惑。我下载了“minicom”的源代码并阅读了其中的几行,但我仍然不太明白。请帮帮我。
小智 5
您的 USB 转 RS232 可能使用 FTDI 芯片。Linux 中的想法是,添加到内核的任何驱动程序都可以通过操作 /dev 文件系统中的条目来访问。
使用 Linux(或任何 UNIX 变体)时,您需要知道的第一件事是一切都是文件。因此,与 Windows(制造商创建 dll 并告诉您要调用哪些函数)不同,在 Linux 中您使用标准文件系统函数(纯粹主义者请注意:出于简单原因,我省略了 ioctl)
因此,请查看 dev 目录,看看当您插入“电线”时会出现哪些条目,以及当您将其拔出时会消失哪些条目。正如 roderigo 提到的,设备文件很可能被称为 ttyUSB0,但 ttyS0 也不是不可能。
然后在您的程序中打开这个“文件”:fd = open("/dev/ttyUSB0", O_RDWR)
您可以使用这些功能write并read从您的 com 端口发送和接收字符。完成后关闭端口close(fd)
要设置线路参数,请在 minicom 源代码或 Linux 文档中搜索 termios 结构。
获取 Kurt Wall 等人所著的《Linux Programming Unleashed》一书。我认为对于为 Linux 上运行的应用程序编写 C 代码的人来说,这是必备的。
祝你好运。