下面是对 Python3 串口读写函数的详细讲解:
库介绍
串口通信可以通过使用 PySerial 库轻松实现,该库为 Python3 提供良好的串口操作支持。该库的使用方法也比较简单,只需导入该库,并使用其中定义的串口对象来进行操作即可。
import serial
串口初始化
在使用串口通信之前,需要对串口进行初始化操作,包括指定串口号、波特率、数据位、停止位和校验位等参数,同时还需打开串口。关于这些参数的具体设置,应根据本地设备和需求进行调整。下面是一个简单的初始化串口的示例:
ser = serial.Serial()
ser.port = 'COM2' # 串口号
ser.baudrate = 9600 # 波特率,需要和硬件匹配
ser.bytesize = serial.EIGHTBITS # 数据位
ser.parity = serial.PARITY_NONE # 校验位
ser.stopbits = serial.STOPBITS_ONE # 停止位
ser.timeout = 2 # 设置读取超时时间
ser.open() # 打开串口
串口读写操作
进行好串口初始化后,就可以进行读写操作了,通过调用串口对象所定义的方法来进行。
读取数据
可以使用 serial.readline()
方法从缓冲区读取一行数据,也可以使用 serial.read()
方法读取指定长度的数据。下面是一个从缓冲区读取一行数据并打印的示例:
data = ser.readline().decode('utf-8').strip()
print(data)
写入数据
使用 serial.write()
方法向串口写入数据,需要传入一个 bytes 类型参数。如果需要发送 ascii 码,可使用字符串转化为 bytes 的方法,如 bytes('hello', encoding='utf-8')
。下面是一个向串口写入一行数据的示例:
ser.write(bytes('hello', encoding='utf-8') + b'\n')
完整示例
import serial
ser = serial.Serial()
ser.port = 'COM2' # 串口号
ser.baudrate = 9600 # 波特率,需要和硬件匹配
ser.bytesize = serial.EIGHTBITS # 数据位
ser.parity = serial.PARITY_NONE # 校验位
ser.stopbits = serial.STOPBITS_ONE # 停止位
ser.timeout = 2 # 设置读取超时时间
ser.open() # 打开串口
while True:
# 从串口读取数据并打印
data = ser.readline().decode('utf-8').strip()
print(data)
# 向串口发送数据
ser.write(bytes('hello', encoding='utf-8') + b'\n')
以上就是对 Python3 串口读写函数的详细讲解和实例介绍,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3的串口读写函数 - Python技术站