首页 文章

如何通过Linux中的USB转RS232线与设备通信?

提问于
浏览
2

我最近有一个关于通过RS-232线与特定设备通信的项目 . 由于我的电脑没有串口,我使用USB转RS232线作为设备和我的电脑之间的中间件 . 但我是Linux驱动程序的新手,所以我很难理解它 .

我在Debian下工作,其中有一个默认的工作驱动程序,我已经测试了可以在硬件方面做的任何事情,并且发现一切都很好 . 现在的情况是如何将命令发送到设备并在C中接收相应的数据 . 我已经阅读了一些书籍,我认为将usb端口映射为tty设备可能会起作用 .

我在以正确的方式思考吗?我有点困惑 . 我下载了“minicom”的源代码并阅读了它的一些内容,但我仍然不太明白 . 请帮帮我 .

1 回答

  • 3

    你的USB-to-RS232可能正在使用FTDI芯片 . Linux中的想法是,可以通过操作/ dev文件系统中的条目来访问添加到内核的任何驱动程序 .

    使用Linux(或任何UNIX变体)时,您首先需要知道的是,一切都是文件 . 因此,与Linux(制造商创建一个dll并告诉您调用哪些函数)不同,您使用标准文件系统函数(请注意纯粹主义者:出于简单原因,我要忽略ioctl)

    因此,请查看开发目录,查看插入“电线”时出现的条目,以及取出时消失的内容 . 正如roderigo所提到的,设备文件很可能被称为ttyUSB0,但ttyS0并非不可能 .

    在您的程序中,然后打开"file": fd = open("/dev/ttyUSB0", O_RDWR) 您可以使用函数 writeread 来发送和接收来自您的COM端口的字符 . 当您完成关闭端口 close(fd)

    要设置行参数,请搜索miniosom源或termios结构的Linux文档 .

    掌握Kurt Wall等人的“Linux Programming Unleashed”一书 . 我认为对于在Linux上运行的应用程序编写C代码的人来说,这是必须的 .

    祝好运 .

相关问题