美文网首页
Python3练习:pySerial模块

Python3练习:pySerial模块

作者: 虞锦雯 | 来源:发表于2020-07-15 21:39 被阅读0次

    串口是计算机上一种非常通用的设备通信协议。
    pyserial模块封装了python对串口的访问,为多平台的使用提供了统一的接口。

    一、检查串口

    (一)示例代码

    import serial
    import serial.tools.list_ports
    
    plist = list(serial.tools.list_ports.comports())
    
    if len(plist) <= 0:
        print ("找不到串口!")
    else:
        plist_0 = list(plist[0])
        serialName = plist_0[0]
        print("检查使用的串口 >", serialName)
    

    (二)演示结果

    检查使用的串口 > COM7
    

    二、打开串口

    (一)示例代码

    ser = serial.Serial(serialName, 9600, timeout=1)
    print("串口配置的参数 >", ser)
    

    (二)演示结果

    串口配置的参数 > Serial<id=0xeaaa285c50, open=True>(port='COM7', baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=1, xonxoff=False, rtscts=False, dsrdtr=False)
    

    三、设置串口

    (一)示例代码

    ser = serial.Serial()
    ser.port = 'COM7'
    ser.baudrate = 115200
    ser.parity = 'O'
    ser.open()
    print("串口配置的参数 >", ser)
    

    (二)演示结果

    串口配置的参数 > Serial<id=0x299601ae80, open=True>(port='COM7', baudrate=115200, bytesize=8, parity='O', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
    

    四、发送数据

    (一)示例代码

    result = ser.write(chr(0x06).encode("utf-8"))
    print("写总字节数:", result)
    result = ser.write("pySerial".encode("gbk"))
    print("写总字节数:", result)
    result = ser.write("pySerial1-".encode("gbk"))
    print("写总字节数:", result)
    result = ser.write("pySerial2-".encode("gbk"))
    print("写总字节数:", result)
    result = ser.write("pySerial3-".encode("gbk"))
    print("写总字节数:", result)
    

    (二)演示结果

    写总字节数: 1
    写总字节数: 8
    写总字节数: 10
    写总字节数: 10
    写总字节数: 10
    

    五、读取数据

    (一)读一个字节

    (1)示例代码

    # 读一个字节
    strRecv = ser.read().hex()
    print("读取的数据 >", strRecv)
    

    (2)演示结果

    读取的数据 > 06
    

    (二)读一行

    (1)示例代码

    # 读一行
    strRecv = ser.readline().decode("gbk")
    print("读取的数据 >", strRecv)
    

    (2)演示结果

    读取的数据 > pySerial
    

    (三)读多行

    (1)示例代码

    # 读取多行,返回列表,必须匹配超时(timeout)使用
    strRecv = ser.readlines()
    print("读取的数据 >", strRecv)
    

    (2)演示结果

    读取的数据 > [b'pySerial1-pySerial2-pySerial3-']
    

    六、关闭串口

    (一)示例代码

    ser.close()
    

    相关文章

      网友评论

          本文标题:Python3练习:pySerial模块

          本文链接:https://www.haomeiwen.com/subject/qjwjhktx.html