丁国一优秀作者
原创内容 来源:小居数码网 时间:2024-08-11 17:03:01 阅读() 收藏:54 分享:77 爆
导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有814个文字,大小约为3KB,预计阅读时间3分钟。
1、python的库非常多,功能同样十分强大,在现有的库的情况下,我们没有必要去重复造轮子,拿来用就可以了,在这里我选了pyserial库。
安装pyserial,使用pip工具,在cmd界面输入:pip install 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()
运行代码:
可以看到搜索到了串口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来接收和发送串口数据)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。
94%的朋友还想知道的:
(233)个朋友认为回复得到帮助。
部分文章信息来源于以及网友投稿,转载请说明出处。
本文标题:pyserial读取串口数据(使用pyserial来接收和发送串口数据):http://sjzlt.cn/shuma/154709.html