Ubuntu下查看串口信息和用python打开串口

一、查看本机串口信息

串口在 /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口连接串行口
声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 5
收藏 2
关注 17
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧