用pyserial读取串口

用pyserial读取串口

安装pyserial

命令行提示符下运行

pip install pyserial

读取串口

import serial
import time

portx = "COM5" #端口号
bps = 115200  #波特率
ser = serial.Serial(portx, bps)

while True:
    data1 = ser.readline().decode("utf-8")  #读取一行并转换编码
    if data1 != "": 
        print(data1)
    time.sleep(0.02)

此时ser默认的数据位、校验位、停止位分别是
数据位:8位
校验位:无校验
停止位:1位

如果设置不同的数据位、校验位、停止位

ser = serial.Serial(  
    port='COM5',  # 串口名称,Windows下可能是'COM3'或者类似的  
    baudrate=115200,        # 波特率  
    bytesize=serial.EIGHTBITS, # 数据位  
    parity=serial.PARITY_NONE, # 校验位  
    stopbits=serial.STOPBITS_ONE, # 停止位  
    timeout=timex,           # 超时设置  
)  
参数功能
port串口名称
baudrate波特率
bytesize数据位,取值范围serial.FIVEBITS, serial.SIXBITS, serial.SEVENBITS, serial.EIGHTBITS
parity校验位 ,取值范围serial.PARITY_NONE, serial.PARITY_EVEN, ,serial.PARITY_ODD PARITY_MARKPARITY_SPACE
stopbits停止位 ,取值范围serial.STOPBITS_ONE, serial.STOPBITS_ONE_POINT_FIVE, serial.STOPBITS_TWO
timeout接收超时时间,float类型,以秒为单位。默认None

.readline()
读取串口传入的一行数据
当timeout=None(默认)时,readline()会一直阻塞直到接收到’\n’的输入
当timeout设为一个具体时间时,当超过设定时间没有接收到’\n’的输入时,会返回一个空白字符串或抛出一个超时异常。

关闭串口

ser.close()

获取所有端口号

import serial.tools.list_ports

ports = serial.tools.list_ports.comports()  # 获取所有可用的串口列表

# 遍历每个串口,并打印出相关信息
for port in ports:
    print(f"Port: {port.device}")  #串口号
    print(f"Description: {port.description}")  #端口描述
    print(f"HWID: {port.hwid}")  #硬件ID
    print("-----------")
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值