一、查看本机串口信息
串口在 /dev 目录中,查看串口是否在使用,可以用命令
ls -l /dev/ttyS*
一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;
查看串口设备:
dmesg | grep ttyS
二、串口调试软件
Windows下的串口调试软件有好多,Linux下资源相对较少,不过也有那么几个好用的。
1. minicom
听说它功能很强大,但它没有UI界面,开始用还不太顺手。安装:
sudo apt install minicom
配置:
sudo minicom -s
界面如下图:
使用方向键 选择 Serial port setup,按Enter键,进入设置环境,如下图
输入a或者A,选择串口设备,如果的是USB转串口,并且接到了COM1上,将/dev/tty8修改为/dev/ttyUSB0
注意:使用USB转串口,那么串口COM1对应ttyUSB0, COM2对应ttyUSB1;如果没有使用USB转串口,而是直接使用串口,那么串口COM1对应ttyS0, COM2对应ttyS1。
配置完串口设备后,按Enter键,再输入E,配置波特率,按默认配置即可 115200 8N1 (波特率:115200,数据位:8,奇偶校验位:N 无,停止位:1)。
配置完波特率,按Enter键,再输入F,配置硬件流控,选择NO
再继续配置软件流控,也选择NO。都配置完后,按下Enter键返回上一界面,选择save setup as dfl(即将其保存位默认配置),再选择Exit,关闭minicom。
再次输入命令 sudo minicom,是刚才的配置生效,可以看到串口输出信息
注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复
2. CuteCom
这个就友好点,有界面了。和Windows的差不多,可以选择串口,设置波特率、数据位、停止位等。中间是接收窗口,下面是发送窗口。安装:
# 安装
sudo apt install cutecom
# 启动
sudo cutecom
来张图:
3. COMTool
这个是在github上找到的,由Neucrack Neutree开发,用python3开发,这里要注意,你电脑没有Python3是不能运行的。值得注意的是,它支持跨平台,linux、windows、mac都可以用。github链接github有各平台的安装及使用教程。
三、串口权限问题
Linux串口是默认普通用户没有读写权限的,每次开机后对串口读写都要附加权限
sudo chmod 666 /dev/ttyUSB0
但对于需要开机自动运行的程序就很麻烦了,所以可以设置永久加权
1.打开下面的文件远程的话要把gedit换成vi或nano等。
这个文件本来是不存在的,只不过编辑器打开不存在的文件会自动创建。
70-usb-serial.rules文件名可以自定义,但必须以.rules结尾。
sudo gedit /etc/udev/rules.d/70-usb-serial.rules
2.在文件中添加如下内容
ttyUSB*表示所有这一格式的串口名,如果你的是ttyS*或其它,按需改。
0666表示加权模式,和chmod后面的参数一致,写成666也可以。
vibot_base是我自定义的串口名,就是为ttyUSB*创建一个超链接 ,如下图。如果你不需要,可以去掉最后一项。
KERNEL=="ttyUSB*", MODE="0666", SYMLINK+="vibot_base"
3.重启电脑重启电脑使修改生效。
四、打开串口
#usr/bin/python3
# -*- coding: utf-8 -*-
import serial
//打开串口0, 9600,8N1,连接超时0.5秒
ser=serial.Serial("/dev/ttyUSB0",57600,timeout=0.5) #使用USB连接串行口
ser=serial.Serial("/dev/ttyAMA0",57600,timeout=0.5) #使用树莓派的GPIO口连接串行口
ser=serial.Serial(1,9600,timeout=0.5)#winsows系统使用com1口连接串行口
ser=serial.Serial("com1",9600,timeout=0.5)#winsows系统使用com1口连接串行口
ser=serial.Serial("/dev/ttyS1",9600,timeout=0.5)#Linux系统使用com1口连接串行口