使用pyserial来接收和发送串口数据(pyserial读取串口数据)

1、python的库非常多,功能同样十分强大,在现有的库的情况下,我们没有必要去重复造轮子,拿来用就可以了,在这里我选了pyserial库。

安装pyserial,使用pip工具,在cmd界面输入:pip install pyserial,等待安装完毕:

使用pyserial来接收和发送串口数据(pyserial读取串口数据)

我们查看下pyserial的文档https://pythonhosted.org/pyserial/,我们要实现一个简单的串口助手功能,那我们串口组件部分需要的功能:

1)、可以搜索PC自带的串口;

2)、可以配置串口;

3)、可以打开关闭串口;

4)、可以发送以及接收数据;

5)、数据的格式可以以16进制或者utf-8来显示。

如此,我们来先实现搜索本地串口,查看pyserial的文档:

使用serial.tools.list_ports来搜索串口,新建com.py,敲入代码:

#coding:utf-8

import serial

import serial.tools.list_ports

def Get_ports():

clist=[]

port_list = list(serial.tools.list_ports.comports())

if len(port_list)> 0:

clist=[]

for e in port_list:

port_list_0 =list(e)

port_serial = port_list_0[0]

clist.append(port_serial)

print(clist)

Get_ports()

运行代码:

使用pyserial来接收和发送串口数据(pyserial读取串口数据)

可以看到搜索到了串口1,我的电脑自带了一个串口。

接着我们来设置串口,包括串口名,波特率,数据位、停止位以及校验位。

try:

com.port = comname

com.baudrate = 115200

com.bytesize = 8

com.stopbits = 1

com.parity = serial.PARITY_NONE

com.open()

except Exception as e:

print(e)

设置完毕后直接打开,打开完了串口还必须有一个关闭串口的功能:

if com.isOpen():

com.close()

print("串口关闭")

代码已经有了,怎么集成到我们的串口界面中去,我们将串口操作这部分做成一个类来直接调用就可以了。

写成一个类:

#coding:utf-8

import serial

import serial.tools.list_ports

class opencom():

def __init__(self):

self.com=serial.Serial()

def initcom(self,comname):

try:

self.com.port = comname

self.com.baudrate = 115200

self.com.bytesize = 8

self.com.stopbits = 1

self.com.parity = serial.PARITY_NONE

except Exception as e:

print(e)

def opencom(self):

try:

self.com.open()

except Exception as e:

print(e)

return self.com.isOpen()

def CloseCom(self):

if self.com.isOpen():

self.com.close()

print("串口关闭")

def Get_ports(self):

clist=[]

port_list = list(serial.tools.list_ports.comports())

if len(port_list)> 0:

clist=[]

for e in port_list:

port_list_0 =list(e)

port_serial = port_list_0[0]

clist.append(port_serial)

return clist

敲入调用代码:

c1=opencom()

clist=c1.Get_ports()

if len(clist)>0:

comname=clist[0]

c1.initcom(comname)

if c1.opencom():

c1.CloseCom()

在cmd中运行:

使用pyserial来接收和发送串口数据(pyserial读取串口数据)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论