Python中使用pyserial实现串口通信
1|0简介
pyserial是基于Python实现的,用于操作串口的第三方库,它支持 Windows、Linux、OSX、BSD等多个平台。
本文主要讲解在Windows环境下使用pyserial来实现串口通信的基本方法。
2|0安装
2|1环境
- Python 2.7 或 Python 3.4+
- Windows 7+
2|2pip安装
3|0基本操作步骤
3|1确定串口号
本地电脑通过usb连接设备,打开设备管理器
可以在端口
中看到如下信息
上面的COM75
就是对应的串口号
或者执行以下代码列出当前连接的串口设备
结果如下:
3|2打开串口
参数说明
- port – 串口名称或
None
- baudrate (int) – 波特率, 如 9600、115200等
- 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) – 读超时时间,可取值为 None, 0 或者其他具体数值(支持小数)。当设置为 None 时,表示阻塞式读取,一直读到期望的所有数据才返回;当设置为 0 时,表示非阻塞式读取,无论读取到多少数据都立即返回;当设置为其他数值时,表示设置具体的超时时间(以秒为单位),如果在该时间内没有读取到所有数据,则直接返回
- xonxoff (bool) – 软件流控,可取值为 True, False
- rtscts (bool) – 硬件 [RTS(请求发送)/CTS(清除发送)] 流控,可取值为 True, False
- dsrdtr (bool) – 硬件 [DSR(数据终端准备好)/DTR(数据准备好)] 流控,可取值为 True, False
- write_timeout (float) – 写超时时间,可取值为 None, 0 或者其他具体数值(支持小数)
简单示例
3|3发送数据
发送数据使用write()
方法,发送的数据只能是bytes类型,因此需要对发送的字符串进行编码操作
3|4读取数据
读取数据可以使用以下方法
- read() - 默认一次读取一个字节,可以通过传入参数指定每次读取的字节数,返回值为bytes类型
- readall() - 读取串口接收的全部数据,返回值为bytes类型
- readlines() - 读取多行数据,返回值为list类型,列表元素类型为bytes类型
3|5关闭串口
关闭串口很简单,直接调用 close()
方法即可
3|6其他方法
- in_waiting():返回接收缓存中的字节数。
- flush():等待所有数据写出。
- flushInput():丢弃接收缓存中的所有数据。
- flushOutput():终止当前写操作,并丢弃发送缓存中的数据。
3|7完整代码
4|0其它
以上就是pyserial库的基本使用方法,想了解更多可以去pyserial官方文档查阅。
__EOF__

本文作者:蓝莓薄荷
本文链接:https://www.cnblogs.com/blueberry-mint/p/16854960.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/blueberry-mint/p/16854960.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报