0%

minicom高级用法及自动发送数据

minicom选项

支持颜色显示

minicom -c on

支持中文显示

env LANG=en_US minicom

支持数据十六进制显示

minicom -H

支持脚本

minicom -S

支持回显

minicom
Ctrl+A->Z
E local Echo on/off..E

minicom自动发送数据

首先需要设置:

-> minicom 
-> Ctrl+A->O 
-> 回车 
-> 选D- Script Program 
-> 设置为 /bin/bash
-> 保存为默认设置 dfl
-> Ctrl+A , Q 退出minicom

通过启动时指定脚本来实现

minicom -S autosend.sh

脚本如下:

#!/bin/bash

while [ 1 -ne 0  ]
do
    echo 12345678
    sleep 1
done

启动之后,指定脚本路径来执行

minicom -H
Ctrl+A->Z
回车
G run script (Go)
C Name of script 绝对路径
回车运行脚本

使用外部脚本

不通过minicom执行相关脚本,直接在其他窗口执行脚本如下:

#!/bin/bash

while [ 1 -ne 0  ]
do
    echo 12345678 > /dev/ttyUSB0
    sleep 1
done

串口与Shell编程

在这之前先介绍一下stty,stty(set tty)命令用于检查和修改当前注册的终端的通信参数。

stty -a 查看当前注册端口的设置情况:
stty -ixon将流控制设置为OFF,而命令
stty ixon则将流控其置为ON。

在stty命令中可以同时设置多个选项:stty ixon 1200
设置波特率为1200 并且设置流控为on
具体更多的参数设置可以使用man指令查看。
下面说下如何通过shell来实现数据的读取,这里主要是使用的cat指令:

cat /dev/ttyUSB0

但在如果执行上面命令,程序会一直停止在读取的界面,如果我们的要求是想读取一段一段的数据,
即分批次读取一定之间内的数据,保存并处理,那应该怎么办呢?
我们就需要先用stty将模式设置成raw 并且设置最大连接时间:

stty -F /dev/ttyUSB0 raw speed 9600 min 0 time 10

然后我们可以把每次读取到的数据存储到一个临时文件中,然后对其进行处理:

cat /dev/ttyUSB0 >> “tmpFile”

完成的代码如下:

stty -F /dev/ttyUSB0 raw speed 9600 min 0 time 10
while [ 1 -eq 1  ]
do
    cat /dev/ttyUSB0 >> "tmpFile"
    echo `date`
done