解释 stty 输出以启动与超级终端的连接

解释 stty 输出以启动与超级终端的连接

我正在尝试通过 RS232 连接在运行 Linux 的嵌入式设备和运行 Windows XP 的 PC 之间进行通信。在 Windows 上,我使用超级终端,但我不知道应该使用哪些设置。我必须设置

  • 比特每秒
  • 数据位
  • 平价
  • 停止位
  • 流量控制

在 Linux 设备上,我运行程序stty来查找该侧的设置。我不想更改 Linux 设备上的这些设置,而只想读取它们。但我很难解释输出。

~$ stty -F /dev/ttyS0 -a 速度 9600 波特;行 24;列 80;intr = ^C;quit = ^\;erase = ^?;kill = ^U;eof = ^D;eol = ;eol2 = ;start = ^Q;stop = ^S;susp = ^Z;rprnt = ^R;werase = ^W;lnext = ^V;flush = ^O;min = 1;time = 0; -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iext

Bits per second大概必须设置为 9600,但我该如何解释 stty 的其余输出?

编辑:

好的,我做了更多。查看是否getty正在运行:

~# ps | grep getty
 1557 root      1884 S    /sbin/getty 115200 ttyS2
 1558 root      1884 S    /sbin/getty 38400 tty1
 1600 root      2636 S    grep getty

我猜这意味着我正在监听设备ttyS2,它似乎也指示波特率为115200。现在我运行stty查看设置:

~# stty -F /dev/ttyS2 -a
speed 115200 baud; rows 24; columns 80;
intr = ^C; quit = ^\; erase = ^?; kill = ^X; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon
-ixoff -iuclc -ixany -imaxbel
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop
-echoprt -echoctl -echoke

现在尝试在超级终端中使用它,我假设以下设置:

  • 每秒比特数:115200
  • 数据位:8(因为cs8)
  • 奇偶校验:无(因为 -parenb)
  • 停止位:1(因为 -cstopb)
  • 流量控制:无(因为 -crtscts 和 -ixon)

但它仍然不起作用。

答案1

尝试 8 位、无奇偶校验、一个停止位、软件流控制。这来自:

“cs8” 表示 8 个数据位。“-crtscts” 表示无硬件流控制。“ixon” 表示软流控制。“-cstop” 表示一个停止位。

相关内容