在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
意味着将执行输出后处理。如果opost
和onlcr
都设置了,onlcr
将导致在输出换行符 (0xa) 字节时添加额外的回车符 (0xd),通常是为了防止楼梯打印,例如
This is a line
This is the next line
这可能是也可能不是您想要的。如果您想要将原始一对一输出关闭到打印机opost
(添加-opost
到stty
参数)。
握手(流量控制)也由 控制stty
,在不了解有关打印机的更多信息的情况下,我无法判断您是否需要设置任何内容。
检查stty
联机帮助页以获取更多信息。