赞
踩
pip install pyserial
version版本3.5
timeout 浮点类型(可以控制读超时时间)
write_timeout 浮点类型 (写入超时时间)
发送方和接收方波特率两边要一致
流控(看情况而定)
清空输入缓冲区
flushInput()
清空输出缓冲区
flushOutput()
read()一下读取太多内容,可能会出错,我这里使用场景暂时没有碰到
== 注: 这里要引用import serial,而不是pyserial==
from serial.tools.list_ports import comports import serial class L_Serial(): def __init__(self,port:str=None, baudrate:int=9600, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout:float=None, xonxoff:bool=False, rtscts:bool=False, write_timeout:float=None, dsrdtr:bool=False, inter_byte_timeout:float=None, exclusive:bool=None): """ :param port: com口 :param baudrate:波特率 :param bytesize:字符长度 :param parity:校验位 :param stopbits:停止位 :param timeout:超时时间 (可以控制读超时时间) :param xonxoff:软流控 :param rtscts:启用硬件 (RTS/CTS) 流控制。 :param write_timeout:写入超时时间 float :param dsrdtr:启用硬件 (DSR/DTR) 流控制 :param inter_byte_timeout: 字符间超时 :param exclusive:设置独占访问模式(仅限 POSIX)。如果端口已经以独占访问模式打开,则无法以独占访问模式打开该端口 """ self.serial=serial.Serial(port,baudrate,bytesize, parity, stopbits, timeout, xonxoff, rtscts, write_timeout, dsrdtr, inter_byte_timeout, exclusive) 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()) @property def isOpen(self): """ 判断com口是否打开 """ 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) #这里写的com6是电脑上搜索到的,不是随便填的数字哦 #win10找到com方式,右击此电脑点击管理,找到设备管理器,找到端口里面就有com口 cc=L_Serial('COM6',19200) #判断com口是否打开 print(cc.isOpen) #写数据 cc.write("AAA") #读数据 cc.read() cc.cat_com_list()
win7和win10部署可能会有稍微的变化
发送方是win10系统,接收方是win7系统,就出现接收方卡顿的情况
write可能会卡顿(接收方一顿一顿的)
解决方案:发送方和接收方都建议使用win10版本
如果没有碰到请忽略
pyserial官方文档: https://pyserial.readthedocs.io/en/latest/pyserial_api.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。