Python串口通信

前言

从需求说起

  • 串口通信控制二维码阅读器
  • 串口通信控制门闸机

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位就返回

你可能感兴趣的:(Python串口通信)