背景是利用两个串口进行数据交互,一个串口周期发送数据,一个串口处理数据。
这里的系统是Linux系统
1.Linux系统虚拟串口工具
1.1 socat安装
sudo apt-get install socat
1.2 开启虚拟串口
socat -d -d pty,raw,echo=0 pty,raw,echo=0
执行命令就会创建两个虚拟串口对,0,2。这个终端串口不要关闭,关闭后虚拟串口也会关闭。
1.3串口通信测试
新开一个终端监听其中一个串口
cat < /dev/pts/0
再新开一个终端,用另一个串口写入数据
echo "123456789" > /dev/pts/2
1.4Cutecom工具测试
这里原本打算利用网上的教程使用Cutecom工具发送周期性数据,但是安装好Cutecom运行时发现无法选择虚拟串口,就是不像网上教程说的那样可以手动输入。附图
Device无法手动输入,导致无法选择生成的虚拟串口。查询无果,所以就不使用这个软件
1.5Putty工具测试
Putty遇到的问题和Cutecom差不多,就是无法使用。
1.6Shell命令发送周期信息给串口
因为我的目的是想每隔1s发送一个信息给串口做数据的后处理,考虑到这些,shell命令完全可以满足这些条件。
我选用的是比较简单的sleep的方法,脚本如下:
#!/bin/bash
for i in $(seq 1 10)
do
echo "123456" > /dev/pts/2
sleep 1
done
简单的for循环10次,每隔1s发送数据给串口。
当然还有其他方法可以参考Linux如何重复执行命令每隔几秒或者每隔几分钟。