前言
从需求说起
- 串口通信控制二维码阅读器
- 串口通信控制门闸机
pyserial
python 串口通信第三方包
安装
- pip install pyserial
串口的端口
最开始在mac上使用的USB转串口的转接线 发现热插拔后串口端口会改变 但是如果服务器或者本地PC是有串口的就不会存在端口改变 导致断电/松线会改变端口 服务挂掉 因为是多串口(有的设备只支持输出并不支持输入查询)也没有办法遍历所有串口来确认设备端口 所以尽量购买带串口PC
如何查询串口端口
- unix系统
ls /dev|grep tty
- 使用pyserial
import serial.tools.list_ports
serial_ports = [i[0] for i in serial.tools.list_ports.comports()]
print(serial_ports)
串口通信
class Ser(object):
"""
serial client
"""
def __init__(self, baud_rate, port):
self.port = serial.Serial(port=port, baudrate=baud_rate, bytesize=8, parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE, timeout=1)
def send_cmd(self, cmd):
self.port.write(cmd.encode('utf-8'))
def read_cmd(self):
response = self.port.readline()
return response.decode('utf-8')
def read_num(self, num):
response = self.port.read(num)
return response
-
port
端口 -
baudrate
波特率 -
bytesize
数据位 -
stopbits
停止位 -
parity
奇偶校验 -
send_cmd
发送命令 -
read_cmd
接收命令 一直接收等待返回 -
read_num
接受命令位数 每num位就返回