python学习:python serial

serial模块使用方法

新建打开一个serial实例 import serial if __name__ == __main__: ser = serial.Serial() ser.port = COM1 ser.baudrate = 115200 print(ser) # 打印内容如下: Serial<id=0x1c695f0d340, open=True> (port=COM1, -> 读或者写端口 baudrate=115200, -> 波特率 bytesize=8, -> 字节大小 parity=N, -> 校验位 stopbits=1, -> 停止位 timeout=None, -> 超时设置 xonxoff=False, -> 软件流控 rtscts=False, -> 硬件流控 dsrdtr=False) -> 硬件流控

serial模块常用方法

方法 说明 ser.isOpen() 查看端口是否被打开 ser.open() 打开端口 ser.close() 关闭端口 ser.read() 从端口读字节数据,默认1个字节 ser.read_all() 从端口接收全部数据 ser.write(‘hello’) 向端口写数据 ser.readline() 读一行数据 ser.readlines() 读多行数据 in_waiting() 返回接收缓存中的字节数 flush() 等待所有数据写出 flushInput() 丢弃接收缓存中的所有数据 flushOutput() 终止当前写操作,并丢弃发送缓存中的数据

发送数据

import serial if __name__ == __main__: ser = serial.Serial(COM1, 115200) success_bytes = ser.write(bThis is data for test ) # b表示bytes类型, 直接发送字符串报错 print(success_bytes) # 发送数据长度

接收数据

- read方法接收 - read(size),接收size单位的字符,默认接收一个字节 - 该方法是阻塞的,在没设置超时时间下,不接收到size单位的字符就一直等待接收 - 如果设置了超时时间,时间未到则一直等待 import serial if __name__ == __main__: ser = serial.Serial(COM1, 115200) data = ser.read(11) # 读取11字符 print(data) # 打印格式 :bhello world - readline方法接收 - readline()是按行读取,即读到换行符是停止读取 - 该方法是阻塞的,在没设置超时时间下,不接收到size单位的字符就一直等待接收 - 如果设置了超时时间,时间未到则一直等待 import serial if __name__ == __main__: ser = serial.Serial(COM1, 115200) data = ser.readline() # 读取到换行符为止 print(data) # 打印格式 :bhello world
经验分享 程序员 微信小程序 职场和发展