linux + minicom + FT232RL USB-to-UART 适配器发送 Carriage Return (CR) 而不是 Linefeed (LF)
linux + minicom + FT232RL USB-to-UART adaptor send Carriage Return (CR) instead of Linefeed (LF)
向这个美好的社区问好。
我用的电脑是MX Linux as OS。我想访问带有 serial/UART 控制台的设备(具体来说,该设备是由 74 系列 IC 制成的最小计算机。参见 https://github.com/slu4coder/Minimal-UART-CPU-FLASH-Edition)。为了从计算机连接到设备,我在硬件上使用了带有(真正的)FTDI FT232RL 芯片的 USB 转 UART 转换器。软件方面,我用的是minicom。
它通常有效,但我遇到了一个非常具体的问题:
该设备需要一个换行符 (LF) 作为换行信号(它在其 PCB 丝印上如此说明)。我无法让 linux+minicom 在 RETURN 或 ENTER 上发送 LF。它将发送一个回车 return (CR).
如果我通过 USB 到 UART 转换器从我的计算机连接到设备并在我的计算机上启动 minicom,它会显示设备串行控制台 - 到目前为止一切正常。
但是如果我在 minicom 中输入设备命令并按 RETURN 或 ENTER,设备将不会处理它们。
但是,如果我在我的命令后使用 CTRL+J 而不是 RETURN 或 ENTER,它会给出一个 LF,它工作正常。同样,如果我不使用我的标准 input/keyboard + minicom,它会起作用,而是像这样从 bash 发送命令:
echo foo > /dev/ttyUSB0
我试图用
修改我的computer/linux行为
sudo stty -F /dev/ttyUSB0 icrnl
但无济于事。
我相信原则上这是正确的命令,但我也尝试了其他命令以确保 100% 确定,例如:
sudo stty icrnl
sudo stty ocrnl
sudo stty cooked
sudo stty raw
sudo stty sane
但他们也没有帮助。
我还尝试让 minicom 本身在 RETURN 或 ENTER 上发送 LF 而不是 CR,使用 minicom 设置菜单中的“添加换行”(A) 选项。这也没有帮助。
你对如何解决这个问题有什么建议吗?这真的不是一个关键问题,因为我总是可以使用 CTRL+J 而不是 RETURN 或 ENTER,但随着时间的推移会有点不方便。
谢谢!
(很抱歉,如果我对问题的描述不是很好 - 爱好者和第一次在这里发帖。如果您需要更多信息或图片,请告诉我。)
根据其手册,minicom
有一个配置设置菜单,其中包含 屏幕和键盘、O - 字符转换、 C - 编辑 char,其中 询问您要转换的字符值(十进制)
改变和你会被问到你想要什么
当您从键盘输入该字符时希望被发送出去。 如果您指定要发送的值 13 (CR) 10 (NL),它应该是您想要的。
向这个美好的社区问好。
我用的电脑是MX Linux as OS。我想访问带有 serial/UART 控制台的设备(具体来说,该设备是由 74 系列 IC 制成的最小计算机。参见 https://github.com/slu4coder/Minimal-UART-CPU-FLASH-Edition)。为了从计算机连接到设备,我在硬件上使用了带有(真正的)FTDI FT232RL 芯片的 USB 转 UART 转换器。软件方面,我用的是minicom。
它通常有效,但我遇到了一个非常具体的问题:
该设备需要一个换行符 (LF) 作为换行信号(它在其 PCB 丝印上如此说明)。我无法让 linux+minicom 在 RETURN 或 ENTER 上发送 LF。它将发送一个回车 return (CR).
如果我通过 USB 到 UART 转换器从我的计算机连接到设备并在我的计算机上启动 minicom,它会显示设备串行控制台 - 到目前为止一切正常。
但是如果我在 minicom 中输入设备命令并按 RETURN 或 ENTER,设备将不会处理它们。
但是,如果我在我的命令后使用 CTRL+J 而不是 RETURN 或 ENTER,它会给出一个 LF,它工作正常。同样,如果我不使用我的标准 input/keyboard + minicom,它会起作用,而是像这样从 bash 发送命令:
echo foo > /dev/ttyUSB0
我试图用
修改我的computer/linux行为sudo stty -F /dev/ttyUSB0 icrnl
但无济于事。
我相信原则上这是正确的命令,但我也尝试了其他命令以确保 100% 确定,例如:
sudo stty icrnl
sudo stty ocrnl
sudo stty cooked
sudo stty raw
sudo stty sane
但他们也没有帮助。
我还尝试让 minicom 本身在 RETURN 或 ENTER 上发送 LF 而不是 CR,使用 minicom 设置菜单中的“添加换行”(A) 选项。这也没有帮助。
你对如何解决这个问题有什么建议吗?这真的不是一个关键问题,因为我总是可以使用 CTRL+J 而不是 RETURN 或 ENTER,但随着时间的推移会有点不方便。
谢谢!
(很抱歉,如果我对问题的描述不是很好 - 爱好者和第一次在这里发帖。如果您需要更多信息或图片,请告诉我。)
根据其手册,minicom
有一个配置设置菜单,其中包含 屏幕和键盘、O - 字符转换、 C - 编辑 char,其中 询问您要转换的字符值(十进制)
改变和你会被问到你想要什么
当您从键盘输入该字符时希望被发送出去。 如果您指定要发送的值 13 (CR) 10 (NL),它应该是您想要的。