2

你好,这个美好的社区。

我使用带有 MX Linux 作为操作系统的计算机。我想使用串行/UART 控制台访问设备(具体来说,该设备是由 74 系列 IC 制成的最小计算机。请参阅https://github.com/slu4coder/Minimal-UART-CPU-FLASH-Edition)。为了从计算机连接到设备,我在硬件上使用带有(正版)FTDI FT232RL 芯片的 USB 到 UART 转换器。软件方面,我使用 minicom。

它通常有效,但我遇到了一个非常具体的问题:

该设备需要换行信号 (LF) 作为换行信号(它在其 PCB 丝印上这样说)。我无法让 linux+minicom 在 RETURN 或 ENTER 上发送 LF。它将发送一个回车符 (CR)。

如果我通过 USB 到 UART 转换器从我的计算机连接到设备并在我的计算机上启动 minicom,它将向我显示设备串行控制台 - 到目前为止,一切都很好。

但是如果我在 minicom 中输入设备命令并按 RETURN 或 ENTER,设备将不会处理它们。

但是,如果我在我的命令之后使用 CTRL+J 而不是 RETURN 或 ENTER,它会给出一个 LF,它可以正常工作。同样,如果我不使用标准输入/键盘 + minicom,它也可以工作,而是从 bash 发送命令,如下所示:

echo foo > /dev/ttyUSB0

我试图用

sudo stty -F /dev/ttyUSB0 icrnl

但无济于事。

我相信这原则上是正确的命令,但我也尝试了其他命令,只是为了 100% 确定,比如:

sudo stty icrnl
sudo stty ocrnl
sudo stty cooked
sudo stty raw
sudo stty sane

但他们也没有帮助。

我还尝试使用 minicom 设置菜单中的“添加换行符”(A)选项让 minicom 本身在 RETURN 或 ENTER 上发送 LF 而不是 CR。这也没有帮助。

你对如何解决这个问题有什么建议吗?这真的不是一个关键问题,因为我总是可以使用 CTRL+J 而不是 RETURN 或 ENTER,但是随着时间的推移会变得有点不方便。

谢谢!

(如果我对问题的描述不是很好,很抱歉 - 业余爱好者和第一次在这里发帖。如果您需要更多信息或图片,请告诉我。)

4

1 回答 1

1

根据其手册,minicom有一个带有屏幕和键盘的 CONFIGURATION 设置菜单,O - 字符转换C - 编辑字符,其中询问您要更改其转换的字符值(十进制),询问您想要什么当您从键盘输入该字符时发送出去。如果您指定要发送的值 13 (CR) 10 (NL),它应该确实需要您想要的。

于 2021-04-02T14:43:07.233 回答