【问题标题】:Linux command to send binary file to serial port with HW flow control?Linux命令通过硬件流控制将二进制文件发送到串口?
【发布时间】:2014-01-30 19:36:05
【问题描述】:

我需要将二进制文件发送到 rs232 设备(打印机),它并不总是可以接受数据,因此它有 BUSY 输出信号,我连接到 CTS 引脚。

我尝试将它与minicom 一起使用,并且硬件流控制工作得很好。但是我不能使用 minicom 发送原始文件,它工作错误我认为 minicom 不喜欢文件中的零。

另一方面,我尝试使用cat file > /dev/ttyS5,以及stty -F /dev/ttyS5 clocalstty -F /dev/ttyS5 crtscts。这些都不起作用:硬件控制根本不起作用,数据传输只是停止(当 TXD 上的 space 状态卡住时,通常在字节中间!)并且在 BUSY 释放后永远不会继续。行为不取决于我使用的clocalcrtscts。 而且cat file > /dev/ttyS5 永远不要等待,即使 BUSY 在此命令之前 处于活动状态。

请注意,使用 minicom,我确保我有正确的连接,在内核和 RS232 PCI-E 板等中支持 RTS/CTS。

所以问题是,我如何使用硬件流控制从命令行进行正确的二进制文件传输?谢谢。

【问题讨论】:

    标签: linux command-line serial-port command flow-control


    【解决方案1】:

    当我进行这种测试时(20 年前),我使用了 unix dd 命令。在你的 linux 风格中找到一个类似的。

    【讨论】:

    • 谢谢,我尝试了dd,但不幸的是它不起作用:无论BUSY 线路状态如何,它总是传输数据,而且我在dd 中找不到任何用于硬件流控制的工作选项。 (所以dd 的作用类似于cat)。
    【解决方案2】:

    这里有一个人说他有一个用 minicom 传输二进制数据的解决方案: http://www.dannysung.com/wmain/linux/tips/sending-binary-files-via-minicom/

    我不明白为什么他的小脚本与cat file >/dev/ttySX 不同,但也许你可以试一试。

    【讨论】:

    • 令人惊讶的是它的工作原理!我也真的不明白建议的脚本与简单的cat 有什么区别,但它可以工作。但只能从minicom 工作:不要从命令行工作。看起来minicom 有一些旧时代的秘密魔法,当时所有的软件都更好、更正确。谢谢!
    猜你喜欢
    • 2014-03-31
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    相关资源
    最近更新 更多