【问题标题】:Serial port /dev/ttyS0 and ttys* input output error串口 /dev/ttyS0 和 ttys* 输入输出错误
【发布时间】:2015-08-09 20:04:07
【问题描述】:

我是这种事情的新手,所以我需要你们的帮助。在使用串行端口时,我想为什么不使用我的 ubuntu 15.04 笔记本电脑上的 /dev/ttyS* 串行端口之一从一个终端回显并从另一个终端监听/监听。当我做cat /dev/ttyS0 时,它给了我输入输出错误。然后我尝试在python上使用pyserial。当我这样做时

import serial
ser = serial.Serial('/dev/ttyS0')

它给了我SerialException: Could not configure port: (5, 'Input/output error')

在查看堆栈溢出后,我发现了这个相关的帖子Pyserial: could not configure port: (5, 'Input/output error) 其中一个人说你需要一个物理连接才能做到这一点。我猜那是为了创建某种循环。所以我的问题是需要什么样的物理连接?谁是 USB 棒,还是我需要专门用于串行端口的东西。如果有人能很好地解释串口编程的工作原理,那就太好了。

随意编辑您认为合适的问题。伙计们,请不要抱怨这个问题听起来多么愚蠢。毕竟很多人来这里学习,这就是我正在做的事情

【问题讨论】:

    标签: python linux ubuntu serial-port pyserial


    【解决方案1】:

    您需要在您的 PC 上安装一两个物理 com 或串行端口才能实现此目的。如果你有一个端口,你可以通过将 Rx 和 Tx 引脚连接在一起来创建一个环回插头。

    如果你没有物理串口并想测试它,你可以使用socat创建一个虚拟串口。

    【讨论】:

    • ^ 谢谢,我会试试的。你是说 socat 还是 scoat?
    • 它是“socat”,详情请参见手册页。您可以使用 'socat -d -d pty,raw,echo=0 pty,raw,echo=0' 创建两个虚拟串口。
    【解决方案2】:

    实际上,您需要一根交换发送和接收引脚的电缆。这被称为“零调制解调器电缆”,因为它可以将两台计算机连接在一起而无需调制解调器。

    您可能还需要将自己添加到“拨出”组才能使用串行端口。

    putty 是一个非常好的串行端口测试程序——您可以让两个 putty 实例相互通信,然后尝试将一侧的 putty 与另一侧的 Python 连接起来。

    最后,有时会有一个调制解调器守护程序运行并认为它应该拥有所有串行端口。它通常会放弃并让它们在一段时间后离开,但如果您不希望随机进程轮询串行连接上的调制解调器,您可能必须找到它并杀死它。

    【讨论】:

    • 很好的解释。我确实将自己添加到拨出组中。由于我没有物理串口,我将尝试创建一个虚拟串口。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多