it-swarm.cn

如何确定串口的波特率?

我正在设置控制台服务器,并且需要确定端口的正确波特率。如果可能的话,我想从命令行执行此操作。有人知道吗?

19
thepocketwade

您要查找的程序称为“ setserial”。

http://linux.die.net/man/8/setserial

4
andrewd18

setserial是特定于Linux的,但是您也可以使用stty命令(在任何Unix上可用)检查任何tty的速度和其他特征。

stty使用其标准输入,因此stty < /dev/ttyXX将为您提供有关该特定tty的信息。另外,如果您无法设置stty的标准输入,则可以使用-F /dev/ttyXX 选项。

26
cjs

由于您提到了控制台服务器,并且这个问题标有linux,所以我假设您正在连接到linux服务器。必须将服务器配置为使用串行控制台,以便检查几个地方。

内核设置涉及将“ console”参数添加到内核的命令行。例如,添加“ console = ttyS0,9600”告诉内核以9600波特将消息发送到第一个串行端口(在DOS/Windows中为/ dev/ttyS0,COM1)。您可以通过引导加载程序配置将此添加到命令行。如果使用grub,则通常是一个名为/boot/grub/grub.conf的文件。请注意,对于传统的键盘/视频控制台(tty0)以及串行(/ dev/ttyS0),您可以具有多个控制台参数。例如:“控制台= tty0控制台= ttyS0,9600”

要通过串行提供登录提示,您需要编辑/ etc/inittab并添加/编辑如下行。 s0:12345:respawn:/ sbin/agetty 9600 ttyS0 vt100此行告诉agetty程序以9600波特在/ dev/ttyS0上生成登录提示符。

请注意,您通常需要在内核和agetty设置之间匹配串行端口和波特率。通过检查上述配置,您应该能够确定服务器的波特率。

2
user10489