- 1.安装pyserial库
- 2.填写串口参数的注意事项
- 3.简单封装一下
- 4.碰到的bug
1.安装pyserial库
pip install pyserial
version版本3.5
timeout 浮点类型(可以控制读超时时间)
write_timeout 浮点类型 (写入超时时间)
发送方和接收方波特率两边要一致
流控(看情况而定)
清空输入缓冲区
flushInput()
清空输出缓冲区
flushOutput()
read()一下读取太多内容,可能会出错,我这里使用场景暂时没有碰到
== 注: 这里要引用import serial,而不是pyserial==
3.简单封装一下from serial.tools.list_ports import comports
import serial
class L_Serial():
def __init__(self,*args):
self.serial=serial.Serial(*args)
@property
def isOpen(self):
return self.serial.isOpen()
@staticmethod
def cat_com_list():
"""
查看当前电脑的com口列表
没有就返回空列表
:return:['COM1','COM2'] or []
"""
try:
port_list=list(comports())
com_list = []
if len(port_list)<=0:
pass
else:
for i in range(0,len(port_list)):
port_list_0 = list(port_list[i])
port_serial = port_list_0[0]
com_list.append(port_serial)
return com_list
except Exception as e:
print("查看com口列表失败",e)
def read(self, size=1):
"""
一下读太多的可能会导致读取错误
:param size:
:return:
"""
return self.serial.read(size)
def write(self,data):
"""
写入数据会返回字符长度
:param data:
:return:
"""
return self.serial.write(data.encode())
4.碰到的bug
win7和win10部署可能会有稍微的变化
发送方是win10系统,接收方是win7系统,就出现接收方卡顿的情况
write可能会卡顿(接收方一顿一顿的)
解决方案:发送方和接收方都建议使用win10版本
如果没有碰到请忽略



