百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

pyserial,一个实用的串口通信python库

off999 2024-10-27 11:54 41 浏览 0 评论

前言

当涉及到Python与硬件交互时,串口通信是一种重要的方式。常用的通信协议如下:

  1. RS-232:一种广泛使用的异步串口通信协议,定义了数据传输时的电气特性、信号定义、传输速率等。通常用于较短距离的串口通信,如连接鼠标、打印机等设备。
  2. RS-422/RS-485:这些协议支持多点通信,可以同时连接多个设备进行通信。它们定义了电气特性、信号线的控制方式和通信规则,适用于较长距离和高速的串口通信。

Python中的pyserial库为开发人员提供了在Python中进行串口通信的便捷方法。本文将介绍pyserial库的基本概念、安装、基本用法以及实际应用示例。


一. pyserial 库

pyserial 是什么?

pyserial是Python中的一个库,用于处理串口通信。它提供了一个简单的方法,在Python中打开、读取和写入串口数据。


二.安装 pyserial 库

通过pip来安装pyserial非常简单。打开命令行并输入以下命令:

pip install pyserial


三. 基本概念

1.串口通信参数

1.波特率:波特率是指串口通信中每秒钟传输的符号数,单位是波特(baud)。它决定了数据传输的速度和效率。在串口通信中,收发双方必须使用相同的波特率才能正常通信。

2.数据位:数据位是指在每个数据包中传输的实际数据位数。它表示每个数据包中携带的有效信息量。常见的数据位长度有5位、7位和8位。

3.停止位:停止位是指在数据包的末尾添加的一个额外的位,用于标识一个数据包的结束。停止位的长度可以是1位、1.5位或2位。

4.奇偶校验:奇偶校验是一种错误检测方式,用于检查数据传输过程中是否出现错误。它通过在每个数据包中添加一个额外的校验位,使整个数据包的二进制位中1的个数为偶数(偶校验)或奇数(奇校验)。

5.流控制:流控制是指控制数据在串口通信中的流动方式。常见的流控制方式有硬件流控制和软件流控制。硬件流控制通过物理硬件实现,软件流控制通过软件编程实现。

7.数据包格式:数据包格式是指传输的数据的格式,包括起始位、数据位、奇偶校验位和停止位的顺序和长度。不同的串口通信协议可能有不同的数据包格式。

设置参数方法

import serial
# 创建串口连接对象  
ser = serial.Serial()  
设置串口参数  
ser.port = 'com3'  # 串口设备路径  
ser.baudrate = 9600          # 波特率  
ser.bytesize = serial.EIGHTBITS  # 数据位长度为8位  
ser.parity = serial.PARITY_NONE   # 无奇偶校验  
ser.stopbits = serial.STOPBITS_ONE  # 1位停止位  
ser.timeout = 1             # 读取超时时间为1秒


四.基本用法

1.打开串口

import serial
ser = serial.Serial('COM1', 9600)  # 串口号和波特率
# 打开串口连接  
ser.open()

2.关闭串口

ser.close()


3.读取和写入串口数据

ser.write(b'Hello') # 写入数据
data = ser.readline() # 读取数据
print(data)


5. 实际应用示例

我们做智能硬件测试的时候,有一项测试是通断电测试,我记得很久以前,我给同事按排插上的开关,手动按了100次,手都按酸了,后来才知道可以用代码控制,类似如下图的串口继电器就可以操作了

import serial
import time
mserial = serial.Serial("com25", 9600, timeout=0.5)
disconnect = bytes([160,1,1,162]) #A0 01 01 A2
connect = bytes([160,1,0,161]) #A0 01 00 A1
mserial.write(disconnect) # 写入数据


time.sleep(5*2)




mserial.write(connect)
mserial.close()

五. 常见问题和解决方案

处理常见问题

在使用pyserial过程中,可能会遇到一些常见问题,以下两个就是最常见的问题:

  1. 串口号错误
  2. 波特设置错误


更多用法参数官方文档

https://pyserial.readthedocs.io/en/latest/

github地址

https://pyserial.readthedocs.io/en/latest/

相关推荐

windows11云电脑(在线windows云电脑)
windows11云电脑(在线windows云电脑)

关闭win11的云端服务的方法如下1.首先我们进入手机设置,然后点击我们的用户名称可以进入账号设置。2.确认信息后,点击“退出账号”即可关闭华为云空间了,如果我们只想要关闭备份功能的话,可以进入“云空间”3.接着点击其中的云备份选项进入,最...

2026-02-01 13:15 off999

诺基亚所有型号及图片(诺基亚所有型号及图片及价格)

诺基亚:N71、N73、N75、N76、N77、N78、N79、N80、N81、N81(8GB)、N82、N85、N91、N91(8GB)、N92、N93、N93i、N95、N95(8GB)、N96、...

星空视频壁纸(星空壁纸引擎)

星空视频壁纸设置方法:打开“开始”→“控制面板”→“更改桌面背景”→有个关于图片属性的,选择“填充”即可,还可以从“计算机”-----“组织”----“属性”----“控制面板”,其余重复一样的。您...

图片文字识别软件(图片文字识别软件哪个好)

华为手机自带文件扫描,打开华为手机的相机,选择左上角的那个图标,点进去之后下面会看到一个文字的图标,选择那个就可以对准文件拍照自动识别了,自己手写的也可以识别,就是精准度会根据你写的字的工整程度有影响...

新盟网上订烟草登录(新盟手机网上订烟草登录)

找你所在的管辖区域客户经理申请帐号,他会给你的。新商盟用户名是零售户的客户编码,送烟小票上有,不清楚的可以致电客户经理。初始密码是零售户开通新商盟的时候电脑系统随即分配的六位数。根据你说的情况,分析情...

电信网上营业厅入口(电信网上营业大厅)

你好,查询各地营业厅号码,只需拨打114号码百事通即可。要找到电信的营业厅,可以通过多种途径进行查询。首先,可以在电信官方网站上查找最近的营业厅地址和联系方式。其次,可以通过拨打电信客服热线100查询...

期货公司哪家手续费最便宜(正规的期货公司哪家手续费低)

华泰长城期货公司开户手续费是业内比较低的,股指开户手续费万0.275,商品期货开户在交易所基础加收30%。反正是没有手续费最低的期货公司,手续费高低是期货公司适度调节的,只要客户的成交量大,期货公司就...

txt免费全本小说阅读器下载安装

将小说转换成TXT形式有多种方法,以下是两种常见的方法:方法一:使用在线转换工具打开电脑浏览器,搜索并找到一个可靠的在线电子书转换工具,如“转转大师”。在工具网站上,选择“电子书转换”功能,并点击“电...

最好听的十大铃音(铃声歌曲大全免费听)

1、《花海》-周杰伦2、《gorgeous》-霉霉3、《水星记》-郭顶4、《樱花樱花想见你》-RSP5、《小幽默》-阿坤6、《有暖气》-橘子海7、《约定》-陈奕迅8、《春风吹》-方大同9、《landi...

mp3格式转换器在线(mp3格式转换器app)

您可以使用以下步骤将音频文件转换为kgm格式:1.下载并安装适当的音频转换器软件,例如Audacity或SwitchAudioConverter。2.打开软件并导入要转换的音频文件。3.选择...

flash游戏(flash游戏是什么意思)

这里面全都是韩国MM化妆小游戏,很不错http://game.21cn.com/zhuanti/mmflash/所有平板电脑都没有flash插件,网页游戏是需要flash支持的所以要首先安装下载f...

coreldraw+x4破解版注册机(cdr x4注册机)

以下是CorelDRAWX4注册的步骤:1.首先,确保您已经安装了CorelDRAWX4软件。2.打开CorelDRAWX4软件,点击“帮助”菜单,选择“注册”。3.在弹出的注册窗口中,选...

国内代理ip免费(国内代理ip免费吗)
国内代理ip免费(国内代理ip免费吗)

芝麻代理:1.海量IP2、IP纯净3.IP质量好、稳定4.性价比高5.免费测试https://dwz.cn/tx87iCe4。不建议使用免费的代理ip,因为免费的代理ip使用的人比较多,没有专业的人员维护,还可能出现一下的问题。第一,访问信...

2026-02-01 10:15 off999

particularly(particularly音标)

particularly和especially有区别为particularly释义:adv.异乎寻常地;特别是;明确地例句:Today'sappointmentisparticular...

可以免费完整的看电影(可以免费完整的看电影的软件)

第一位:极限影音这是中国第一家免费电影网站。虽然域名有点难记,但它在很多免费电影网站上都有很好的服务。这是个好名声。你可以在这里得到最快和最新的免费电影。第二位:007免费在线电影这个网站是一个很好的...

取消回复欢迎 发表评论: