屏幕 /dev/ttyUSB0 具有不同的选项,例如数据位、奇偶校验等

screen /dev/ttyUSB0 with different options such as databit, parity, etc

我正在尝试使用

screen /dev/ttyUSB0

通过 USB 串行接口连接到旧计算机。

我希望在这个网站上注册后我会得到问题的答案。我搜索了又搜索,但还没有想出在我的命令行中放置正确的选项以从我的计算机获得非乱码反馈(收到的文本全都搞砸了)。

我的操作系统是CentOs,Gnome 2.16.0。 我看到有一个名为 KPPP 的程序,它有一个 "Terminal...",但也没有弄清楚。所以我尝试将 CLI 与 'screen' 一起使用,但我在设置正确的参数时遇到了问题(显然,我不明白如何将这些参数与 stty 一起使用)。这不是安装应用程序或使用这台计算机做任何事情的选项,所以我必须使用已经存在的东西。 'screen' 似乎可以完成这项工作,但如前所述,收到的文本是乱码(“$$@%idj ldj”等)

我需要一台电脑的这些参数:

Baud: 9600 Databit: 8 Parity: No Stopbit: 2 Flow control: Hardware.

对于计算机二,我需要:

Baud: 9600 Databit: 7 Parity: Even Stopbit: 1 Flow control: Hardware

波特率容易;

screen /dev/ttyUSB0 9600

但是剩下的怎么办,我不知道。 .我找到了停止位的选项:

cstopb (use two stop bits)

-cstopb (use one stop bits)

但是如何正确使用呢?

screen /dev/ttyUSB0 9600 -cstopb

screen /dev/ttyUSB0 9600,-cstopb

因此,如果有人可以帮助我使用所有列出的参数通过串行接口连接到另一台计算机,我将非常感激!

2016 年 12 月 22 日更新:

我找到了 stty 手册:http://osr507doc.sco.com/man/html.C/stty.C.html

databit和这个选项一样吗?

   cs5 cs6 cs7 cs8
        Select character size (see termio(M)). 

奇偶校验:

   parodd (-parodd)
         Select odd (even) parity. 

停止位:

   cstopb (-cstopb)
         Use two (one) stop bits per character. 

但是硬件控制呢?

无论如何;这仍然不起作用;

screen /dev/ttyUSB0 9600 cs8 oddp cstop 

   screen /dev/ttyUSB0 9600 cs7 evenp -cstop

阅读此post 了解有关 minicom 的详细说明和使用 https://www.cyberciti.biz/tips/connect-soekris-single-board-computer-using-minicom.html

Minicom 类似于 gtkterm 和串行端口通信的行业标准。

我认为screen不支持所有这些不同的串口设置,只支持最基本的参数。 通过查看 stty 手册,您已经朝着正确的方向前进,但是您必须将 stty 用作屏幕之外的单独工具: 首先配置串行端口,然后使用屏幕连接到它。

为计算机 1 配置串行端口:

# stty - change and print terminal line settings
#
#    -F /dev/ttyUSB0      Change the settings of /dev/ttyUSB0
#    cs8                  Use 8 character bits
#    -parenb              Don't use a parity bit (the '-' means 'disable')
#    crtscts              Enable RTS/CTS handshaking (hardware flow control)
stty -F /dev/ttyUSB0 cs8 -parenb cstopb crtscts

配置端口后,您可以通过屏幕开始使用它:

# screen - screen manager with VT100/ANSI terminal emulation
#
#    /dev/ttyUSB0         Use /dev/ttyUSB0 as terminal
#    9600                 Open the serial port using 9600 baud
screen /dev/ttyUSB0 9600

这同样适用于您的第二台计算机:

# stty - change and print terminal line settings
#
#    -F /dev/ttyUSB0      Change the settings of /dev/ttyUSB0
#    cs7                  Use 7 character bits
#    parenb               Enable the a parity bit
#    -parodd              Don't use ODD, but use EVEN parity
#    -cstopb              Don't use 2 stopbits, but just the regular 1
#    crtscts              Enable RTS/CTS handshaking (hardware flow control)
stty -F /dev/ttyUSB0 cs7 parenb -parodd -cstopb crtscts

然后你可以启动屏幕 @9600 波特:

# screen - screen manager with VT100/ANSI terminal emulation
#
#    /dev/ttyUSB0         Use /dev/ttyUSB0 as terminal
#    9600                 Open the serial port using 9600 baud
screen /dev/ttyUSB0 9600

这应该可以解决问题。您可以在 stty:

的帮助下找到更多配置选项
stty --help

选项之间需要逗号!

要启用 RTS/CTS flow control,请使用以下命令:

screen /dev/ttyS0 9600,crtscts

注意:并非所有 USB 到 RS232 转换器都实现硬件流控制!