Pyserial库的安装
将python版本更新到2.7及以上,或3.4及以上,然后直接使用pip安装:
pip install pyserial
Serial对象
导入pyserial包后使用serial.Serial创建。
此处因为业务需要,需要同时在windows和linux或macos下访问此应用。
在windows和linux中,端口名称不相同。
在windows下,端口名形如【COMx】(x为整数);
在linux下,端口名形如【/dev/xxxxx】(x为具体端口名)。
因此还引入了platform来判断系统以获取不同系统下的端口。
import serial
def create_connection(self, port):
if self._system.lower() == "darwin":
self.ser = serial.Serial(port="/dev/{}".format(port),
baudrate=115200, #波特率
bytesize=8, #字节大小
stopbits=1) #停止位
elif self._system.lower() == "windows":
self.ser = serial.Serial(port=port,
baudrate=115200,
bytesize=8,
stopbits=1)
此处应根据实际业务需求设置【校验位】,【超时时间】等属性。
常用属性
以下为Serial对象所有的属性:
port: str #端口名
baudrate: int #波特率
bytesize #可能的值:FIVEBITS, SIXBITS, SEVENBITS, EIGHTBITS
parity #可能的值:PARITY_NONE, PARITY_EVEN, PARITY_ODD PARITY_MARK, PARITY_SPACE
stopbits #可能的值:STOPBITS_ONE, STOPBITS_ONE_POINT_FIVE, STOPBITS_TWO
timeout: float #超时时长
xonxoff: bool #软件流控制的开关
rtscts: bool #硬件(RTS/CTS)流控制的开关
dsrdtr: bool #硬件(DSR/DTR)流控制的开关
write_timeout: float #输出的超时时间
inter_byte_timeout: float #字符间隔超时时长,默认设置为None以禁用
in_waiting: int #返回输入缓冲区(待接收)中的字符数量
out_waiting: