栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python第三方库之学习pyserial库(一)--串口通信

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python第三方库之学习pyserial库(一)--串口通信

pyserial串口通信库
  • 1.安装pyserial库
  • 2.填写串口参数的注意事项
  • 3.简单封装一下
  • 4.碰到的bug

1.安装pyserial库

pip install pyserial
version版本3.5

2.填写串口参数的注意事项

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版本
如果没有碰到请忽略

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/295879.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号