Python pyserial 串口开发
在上一篇 《Python pyserial 串口工具》 中介绍了pyserial的简单用法。这篇章主要介绍实践过程中遇到的一些问题。
import serial
import serial.tools.list_ports
port_list = list(serial.tools.list_ports.comports() )
使用上面的 serial.tools.list_ports.comports() 扫描计算机接入的串口设备后,ListPortInfo 的结构如上图所示,上面的信息非常有用。可以利用description 对接入的设备进行筛选。比如我这边在项目中主要是嵌入式设备的串口通过CH340 TTL转USB把数据传输到电脑,USB-SERIAL 这个关键字是我需要的端口,其余的端口我并不关心。因为我们的操作可能会占用串口COM口,导致其他程序的运行错误。所以必须选择目标端口
self.com_list = list(serial.tools.list_ports.comports())for cnt in range(len(self.com_list)):if self.com_list[cnt].description.find('USB-SERIAL') != -1:try:self.port_opened.append(serial.Serial(self.com_list[cnt].name, 115200, timeout=0.1))print('*正在开打端口.....',self.com_list[cnt].name)except:print('端口初始化错误',self.com_list[cnt].name,list(self.com_list[cnt]))print('端口可能被其他软件占用')continue
self.com_list 获取电脑上所有接入的COM口设备,然后在description中寻找我需要关键字。如果找到说明这个设备是我的目标设备我需要 对端口进行操作,对其进行开启。
开启串口非常容易发生意外,因为嵌入式设备通过连线链接USB-SERIAL转接器,在接入电脑,如果接触不良非常容易出现错误,所以发开端口必须使用try。初始化所用参数timeout=0.1是经验所得。
port_opened 是所有目标设备初始化的实体。
serial.tools.list_ports.comports()
端口刷新方法,可以重复执行,每过一段时间可以刷新端口列表,用来观察是否有新的设备接入电脑,是否有设备拔出。但是下面的方法可不行
serial.Serial(self.com_list[cnt].name, 115200, timeout=0.1)
一但一个端口已经打开,再去开启的话会报错。官方说明中写到
The port is immediately opened on object creation, when a port is given. It is not opened when port is None and a successive call to open() is required.
因此打开端口需要非常谨慎
下一篇 会围绕COM端口热插拔,端口列表的刷新,管控接入设备展开。
Python 串口动态列表 串口热插拔
Python pyserial 串口开发相关推荐
- python串口模块_Python使用pip安装pySerial串口通讯模块
pySerial封装了对串口的访问,供大家参考,具体内容如下 特性 在支持的平台上有统一的接口. 通过python属性访问串口设置. 支持不同的字节大小.停止位.校验位和流控设置. 可以有或者没有接收 ...
- python pyserial 无法识别VSPD创建的虚拟串口 windons 10
背景: 用了 VSPD创建了COM10, COM9,2个虚拟串口,准备用来做串口通信模拟. 问题: 但是,用python ,pyserial查找列表命令,却没有打印出来,以下是源代码: ...
- Python的串口通信(pyserial)
串口通信是指外设和计算机间,通过数据信号线 .地线.控制线等,按位进行传输数据的一种通讯方式.这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低.串口是计算机上一种非 ...
- python windows 消息通讯_在windows下使用python进行串口通讯的方法
在windows下使用python进行串口通讯的方法 Windows版本下的python并没有内置串口通讯的pyserial的库,所以需要自己下载.参照了网上的教程,有许多用的pip的安装方式,但是试 ...
- python树莓派串口通信实例_树莓派通过串口发送数据
可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...
- pyserial串口通信
python的串口通信模块-pyserial import serial导入模块ser = serial.Serial(0) 是打开第一个串口ser.write("hello") ...
- 使用pip安装pySerial串口通讯模块
提示错误: Pyserial is not installed for D:\Professional_Software\Python27\python.exe. Check the README f ...
- 通过Python设计串口调试助手,结合FPGA串口工程进行验证
Python设计串口调试助手,结合FPGA串口工程进行验证 一.用python设计串口 二.打开Quartus,在FPGA上运行uart代码 1.顶层文件 2.uart_rx接收模块 3.uart发送 ...
- Windows下使用Python实现串口通信
Windows下使用Python实现串口通信 基本信息 配置过程 配置思路 详细配置过程 安装USB装TTL驱动 配置serial库 获取设备端口号 配置串口通信 配置说明 测试过程 其他学习记录 参 ...
- HaaS学习笔记 | 最详细的HaaS Python轻应用开发快速入门教程
[1]摘要 本教程主要讲述HaaS框架开发环境的搭建以及在ESP32开发板上进行HaaS Python轻应用开发的基本流程,结合小蜜蜂老师研制的蓝蜻蜓ESP32开发套件,通过"Hello ...
最新文章
- PPDE英雄帖!广邀全球开发者执开源之桨,汇百川成海
- Android中RelativeLayout各个属性的含义
- 后缀数组--(最长公共前缀)
- 如何看云服务器性能,从存储速度看云服务器性能测试
- 基于python的图片修复程序-可用于水印去除
- python怎么在运行中查看执行状态,Python程序运行时查看对象状态怎样设计才能实现...
- MySQL server has gone away报错原因分析
- [入门系列]什么是面向服务的体系结构(SOA)?
- Axis1.x WebService开发指南—目录索引
- Thinkphp结合phpqrcode生成二维码海报代码
- KMeans算法流程
- 推理和论证(证明)的区别
- 如果使用半导体RFID读写器CK-S640-AP60E读取RI-TRP-DR2B-40的UID信息
- 重疾险和医疗险的对比
- Windows 10使用HDD硬盘出现占用率100%造成卡机假死的解决方法
- 《卓有成效的管理者》读书笔记(一)——推荐序四
- 边缘计算开源框架EdgeXFoundry的部署应用开发(三)设备服务开发
- 微信开发者工具的使用(一)
- java 天猫模拟登陆_爬虫登录 最好是天猫爬虫登录 有经验的大神请赐教
- c 编程语言翻译 网站,计算机语言翻译
热门文章
- 计算机专业必看电影,IT人士必看的10部电影
- Arduino控制PS2无线手柄
- 条形码类型及常见条形码介绍
- lamp兄弟连 mysql_LAMP兄弟连原创视频教程(笔记五--文件上传下载,mysqli对象,session,cookie,date函数)...
- 阿里云服务器搭建fastdfs
- 转博答辩ppt_如何高质量的完成一个论文答辩ppt?
- 1534 棋子游戏(博弈论,未知规律... ...)
- ubuntu终端打开文件夹_如何在Ubuntu的文件浏览器中将终端打开到特定文件夹
- 日语入门难?学日语最好用的工具——早道五十音图
- Android8.0一键root,小米Mix 2(安卓8.0)一键ROOT详解教程,看教程ROOT