如果要发的数据很少,可以直接用 echo 向串口文件里写。主要的要点有 2:
- echo 使用选项 -ne。n 用于不附加结尾回车,e 用于开启转义。16 进制数的转义写法和 Python 一样,真是好。
- 给串口文件写权限。默认串口文件是不能写的,要么给串口加写权限
chmod o+rw /dev/ttyS1
,要么把当前用户添加到串口读写组里usermod -aG dialout current_user
。
另外 echo 默认输出到标准输出,需要重定向到串口文件。综上,可以这么发:echo -ne "\x52\x54\x01\x01\x01\x01\x0A\x0D" > /dev/ttyS1
。
如果发送没效果,有个可能的原因是串口波特率不对。用 stty 修改串口设置即可:stty 9600 -F /dev/ttyS1
。