python 中serial.read用法详解之serial.read(inwaiting or 1)

在Python中, serial.read(inwaiting or 1) 是 pyserial 库中用于从串口读取数据的代码片段,下面是详细解释:

 read()       serial 类的方法,用于从串口缓冲区读取指定数量的字节数据。格式为 read(size) , size 为读取的字节数。

 

 inwaiting 是 serial 类的属性,返回串口输入缓冲区中等待读取的字节数。如 ser.inwaiting() 可获取当前缓冲区字节数。

inwaiting or 1 这是一个逻辑表达式。若 inwaiting 的值为非零(即缓冲区有数据),则取 inwaiting 的值作为 read 方法的参数,读取缓冲区所有数据;若 inwaiting 为零(缓冲区无数据),则取 1 作为参数,读取一个字节。

 

示例如下:

 

import serial

 

# 打开串口

ser = serial.Serial('COM1', 9600)  

 

while True:

    # 读取串口数据

    data = ser.read(ser.inwaiting() or 1)  

    if data:

        print(data.decode('utf-8'))

 

# 关闭串口

ser.close()

你可能感兴趣的:(python)