今天调试一设备,需要根据其串口数据进行编程,想着天比较热,还得下楼调试,何不直接模拟一个串口。
虚拟串口的实现(socat)
安装socat
sudo apt-get install socat
生成虚拟串口对
打开终端通过如下指令生成虚拟串口对:
socat -d -d pty,b115200 pty,b115200
其中两个b115200分别为两个串口的波特率,有关创建虚拟串口的相关配置可以再去参考:https://wenku.baidu.com/view/d8c69754a68da0116c175f0e7cd184254a351b26.html?_wkts_=1719280553462
打开接收串口并输出串口内容
使用上图中打印前两行的 /dev/pts/1或者 /dev/pts/2,选择其一作为输出端(当然也有可能是3 4,选择日志里给的即可)
cat < /dev/pts/1
打开发送串口并向串口发送内容
输入echo "Hello World!" > /dev/pts/2,上面选择1,这里就选2,反之亦然。
脚本实现串口发送
创建sh文件
输入touch sendCom.sh创建
编辑sh文件
输入gedit sendCom.sh打开编辑器,也可以用vi或者直接去资源管理器目录里双击打开
在弹出的编辑器中输入一个while循环,如图:
红框中为你要处理的数据模板
按Ctrl+s保存,退出
将sh文件作为可执行程序
输入命令chmod +x ./sendCom.sh
运行sh文件
输入 ./sendCom.sh
如图
另一端收到数据,使用命令cat < /dev/pts/1 ,接收到的数据如图