我正在使用屏幕从串行控制台读取文本。 问题是输出似乎只有换行\ n但不回车\ r,所以显示看起来像这样…
Line1 Line2 Line3
我想知道是否有补丁来解决这个问题?
试试stty onlcr
。
手册页说,它将在输出上将换行符翻译为回车符/换行符,这似乎是您所需要的。
onlcr
是为了将新出现的文件翻译成文件。
stty -F /dev/ttyS0 inlcr
会将传入的换行符转换成回车符。 您可以在启动屏幕后从另一个终端运行该程序,以避免启动时可能会执行的任何重置操作。 不幸的是,这只会改变这个问题。 那么你只会得到回报而没有换行符。
所需要的是一个选项来追加一个返回到一个传入的换行符,以便终端接收\n\r
,这是串行设备应该输出的第一位。 似乎有一个onlret
选项可以为外发数据执行此操作,但是在这种情况下我们似乎不需要inlret
选项。
我有完全相同的问题(使用picocom虽然),我已经googling了好几天试图找到标准的修复,但似乎没有人。 有许多串行设备只输出\n
,根本不能输出\r\n
,我不相信它们全部只属于两个linux用户。 是什么赋予了!?
如果您使用pyserial附带的miniterm.py程序,它会将换行符解释为crlf。 它不是最全功能的终端仿真器,而是与简单的串行设备进行交互,从而完成工作。
用法语法(在OSX上):
miniterm.py /dev/tty.usbserial-XXXXXX 115200
将XXXXXX替换为系统中出现的任何设备。
在我的情况下工作: stty -F /dev/ttyACM0 -icrnl
因为串行被隐式设置为将CR翻译为NL。 这个命令把它设置回来。 注意icrnl
前面的减号字符。