龙空技术网

Python中轻松实现串口通信

迷途小书童的Note 1283

前言:

而今姐妹们对“python做串口通讯”大概比较关切,姐妹们都需要了解一些“python做串口通讯”的相关资讯。那么小编也在网上搜集了一些关于“python做串口通讯””的相关资讯,希望大家能喜欢,朋友们快快来学习一下吧!

简介

pyserial 是一个 Python 库,它可以让您轻松地与串行端口进行通信。它支持多种操作系统,包括 WindowsLinuxmacOSpyserial 模块非常易于使用,并且提供了许多有用的功能。

实现原理

libserial 库是一个跨平台的串口库,使用 C 语言编写,支持多种操作系统。pyserial 模块通过调用 libserial 库中的函数来实现其功能。

安装

使用 pip 安装,执行命令

pip install pyserial

使用示例

首先,接上串口线,在 设备管理器 中找到该设备,如我这里的 COM11,这会在后面的代码中用到

除了端口号,我们还需要设置一下串口的其它几个属性,比如波特率、数据位、奇偶校验位、停止位、DTR/DSRRTS/CTSXON/XOFF

理清了这些后,就可以看下面的代码了

import serialif __name__ == '__main__':    # 如果不清楚当前的串口设备,pyserial 也提供了相应的 api    import serial.tools.list_ports    ports = list(serial.tools.list_ports.comports(include_links=False))    for port in ports:        print(port)    # 创建串口对象    ser = serial.Serial(port="COM11", baudrate=115200, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=1, rtscts=False)    # 判断串口是否打开    if ser.isOpen():        print('open success.')        # 发送数据,这里只支持 bytes 类型的数据,需要对字符串进行 encode 编码        send_len = ser.write(b'usb start')        print('send data length: {}'.format(send_len))        # 读取数据,读取的内容也是 bytes 类型        read_msg = ser.read(30)        print('read_msg: {}'.format(read_msg))    else:        print('open failed.')    # 关闭串口    ser.close()

更多内容,可以参考官方的文档

标签: #python做串口通讯 #python串口绘图