在 Linux 上配置串口最简单的方法是什么?

在 Linux 上配置串口最简单的方法是什么?

在Windows命令提示符下配置串口,我可以简单地使用:

mode com1: 9600,n,8,1

或读取配置:

mode com1:

Linux下有类似的命令吗?在 Linux 中查找和配置串行端口的最简单方法是什么?

答案1

您可以使用该stty命令来设置此类参数。

这将显示第一个串行端口上的所有设置(如果使用 USB 串行端口,则替换ttyS0为):ttyUSB0

stty -F /dev/ttyS0 -a

这会将波特率设置为 9600、8 位、1 个停止位、无奇偶校验:

stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb

人们通常感到困惑的一件事是,一旦设备关闭(即没有进程再打开设备),大多数串行驱动程序会将设置重置为默认值。因此,上述stty命令将设置设置,完成后驱动程序将再次重置它们。如果您首先让 POS 软件打开设备,然后执行设置stty,它们应该会一直保留,直到您的 POS 软件再次关闭设备(例如退出时)。

我认为 POS 软件应该有某种方式自行配置这些设置。如果您正在编写自己的软件来驱动打印机,请确保首先打开设备,然后执行命令stty

您可能还需要尝试其他设置,例如opost意味着将执行输出后处理。如果opostonlcr都设置了,onlcr将导致在输出换行符 (0xa) 字节时添加额外的回车符 (0xd),通常是为了防止楼梯打印,例如

This is a line
              This is the next line

这可能是也可能不是您想要的。如果您想要将原始一对一输出关闭到打印机opost(添加-opoststty参数)。

握手(流量控制)也由 控制stty,在不了解有关打印机的更多信息的情况下,我无法判断您是否需要设置任何内容。

检查stty联机帮助页以获取更多信息。

相关内容