为了能够以 ASCII 形式发送带有 minicom 的二进制文件,您需要先对其进行编码。问题是你需要在接收端再次解码,所以我猜你不能遵循这条路线。
幸运的是,您可以自定义 minicom 以添加新的传输协议。见这里:
https ://gist.github.com/cstrahan/5796653
如您所见,该过程非常简单:
1)例如,将脚本保存在系统中的某个位置/usr/bin/bin-xfer.sh
2)给它正确的权限:$sudo chmod +x bin-xfer.sh
3) 运行 minicom 的 setup:$sudo minicom -s
并在菜单上选择文件传输协议
4)添加一个新的条目点击J,给一个名字喜欢binary
并按回车移动到下一个菜单,然后添加命令行/usr/bin/bin-xfer.sh -o %l
并根据链接设置其他选项
5) 保存配置并退出设置菜单
然后从 minicom 你可以调用你刚刚添加的新菜单CTRL+ A+S
编辑:我自己在 Ubuntu 19.04 上测试了这个解决方案后,我意识到脚本不起作用(因为它使用了不支持的不同函数定义)。但这很容易修复,只需将第 5 行从 更改function exists {
为exists() {
. $sudo apt-get install pv
如果您想监控传输进度,安装 pv 也是一个好主意。
作为旁注,您不需要使用 minicom,您可以将此脚本用作独立工具,但要做到这一点,您需要使用 stty 设置端口,例如:
$ stty -F /dev/ttyUSB0 115200 raw cs8 -ixoff -cstopb -parenb
然后运行脚本:
$ bin-xfer.sh -i bin_file_to_send -o /dev/ttyUSB0
我还测试了这个python 脚本,它也可以工作,并且可以以类似的方式添加到 minicom 的菜单中。