1、串口调试
(1)获取串口号:ls /dev/tty*
(2)配置串口属性
- 查看串口属性,比如查看ttySWK0串口的信息
sudo stty -F /dev/ttySWK0
- 设置串口波特率,比如设置ttySWK0串口的波特率为115200:
stty -F /dev/ttySWK0 speed 115200
一般串口波特率默认值为9600。
(3)串口数据读写操作
打开两个终端
一个终端使用echo向串口发送数据,如
echo “1111111” > /dev/ttySWK0
一个终端使用cat来读取串口中的数据,如
cat /dev/ttySWK0
读取数据并保存到txt文本文件中,如
cat /dev/ttySWK0 > ttySWK0_output.txt
2、遇到的问题
(1)串口数据写入提示无权限
解决方案:
- 查看串口对应的信息:ls /dev/ttySWK0 -l
可看到串口所属用户组为dialout
- 查看当前用户所属组,此处假设用户名为test:groups test
- 串口所属组添加当前用户test:sudo gpasswd --add test dialout
- 添加后查看当前用户所属组的情况,确认添加用户成功:groups test
test : test adm dialout cdrom sudo dip plugdev lpadmin nopasswdlogin sambashare
然后重启系统或注销用户使其生效
(2)cat端读取串口数据显示输入的串口信息后,显示了很多空白行
问题分析:由于cat是实时读取数据的,在串口数据回显的情况下,会不停的读取串口信息。
解决办法:
第一种方法,去除串口回显stty -F /dev/ttySWK0 -ech0
然后读取串口数据显示就是数据加换行。
第二种方法,读取串口数据时指定读取行数。比如指定前5列数据。cat /dev/ttyS4 |head -n 5