在上一篇 《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 串口开发相关推荐

  1. python串口模块_Python使用pip安装pySerial串口通讯模块

    pySerial封装了对串口的访问,供大家参考,具体内容如下 特性 在支持的平台上有统一的接口. 通过python属性访问串口设置. 支持不同的字节大小.停止位.校验位和流控设置. 可以有或者没有接收 ...

  2. python pyserial 无法识别VSPD创建的虚拟串口 windons 10

    背景:         用了 VSPD创建了COM10, COM9,2个虚拟串口,准备用来做串口通信模拟. 问题: 但是,用python ,pyserial查找列表命令,却没有打印出来,以下是源代码: ...

  3. Python的串口通信(pyserial)

    串口通信是指外设和计算机间,通过数据信号线 .地线.控制线等,按位进行传输数据的一种通讯方式.这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低.串口是计算机上一种非 ...

  4. python windows 消息通讯_在windows下使用python进行串口通讯的方法

    在windows下使用python进行串口通讯的方法 Windows版本下的python并没有内置串口通讯的pyserial的库,所以需要自己下载.参照了网上的教程,有许多用的pip的安装方式,但是试 ...

  5. python树莓派串口通信实例_树莓派通过串口发送数据

    可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...

  6. pyserial串口通信

    python的串口通信模块-pyserial import serial导入模块ser = serial.Serial(0) 是打开第一个串口ser.write("hello") ...

  7. 使用pip安装pySerial串口通讯模块

    提示错误: Pyserial is not installed for D:\Professional_Software\Python27\python.exe. Check the README f ...

  8. 通过Python设计串口调试助手,结合FPGA串口工程进行验证

    Python设计串口调试助手,结合FPGA串口工程进行验证 一.用python设计串口 二.打开Quartus,在FPGA上运行uart代码 1.顶层文件 2.uart_rx接收模块 3.uart发送 ...

  9. Windows下使用Python实现串口通信

    Windows下使用Python实现串口通信 基本信息 配置过程 配置思路 详细配置过程 安装USB装TTL驱动 配置serial库 获取设备端口号 配置串口通信 配置说明 测试过程 其他学习记录 参 ...

  10. HaaS学习笔记 | 最详细的HaaS Python轻应用开发快速入门教程

    [1]摘要  本教程主要讲述HaaS框架开发环境的搭建以及在ESP32开发板上进行HaaS Python轻应用开发的基本流程,结合小蜜蜂老师研制的蓝蜻蜓ESP32开发套件,通过"Hello ...

最新文章

  1. PPDE英雄帖!广邀全球开发者执开源之桨,汇百川成海
  2. Android中RelativeLayout各个属性的含义
  3. 后缀数组--(最长公共前缀)
  4. 如何看云服务器性能,从存储速度看云服务器性能测试
  5. 基于python的图片修复程序-可用于水印去除
  6. python怎么在运行中查看执行状态,Python程序运行时查看对象状态怎样设计才能实现...
  7. MySQL server has gone away报错原因分析
  8. [入门系列]什么是面向服务的体系结构(SOA)?
  9. Axis1.x WebService开发指南—目录索引
  10. Thinkphp结合phpqrcode生成二维码海报代码
  11. KMeans算法流程
  12. 推理和论证(证明)的区别
  13. 如果使用半导体RFID读写器CK-S640-AP60E读取RI-TRP-DR2B-40的UID信息
  14. 重疾险和医疗险的对比
  15. Windows 10使用HDD硬盘出现占用率100%造成卡机假死的解决方法
  16. 《卓有成效的管理者》读书笔记(一)——推荐序四
  17. 边缘计算开源框架EdgeXFoundry的部署应用开发(三)设备服务开发
  18. 微信开发者工具的使用(一)
  19. java 天猫模拟登陆_爬虫登录 最好是天猫爬虫登录 有经验的大神请赐教
  20. c 编程语言翻译 网站,计算机语言翻译

热门文章

  1. 计算机专业必看电影,IT人士必看的10部电影
  2. Arduino控制PS2无线手柄
  3. 条形码类型及常见条形码介绍
  4. lamp兄弟连 mysql_LAMP兄弟连原创视频教程(笔记五--文件上传下载,mysqli对象,session,cookie,date函数)...
  5. 阿里云服务器搭建fastdfs
  6. 转博答辩ppt_如何高质量的完成一个论文答辩ppt?
  7. 1534 棋子游戏(博弈论,未知规律... ...)
  8. ubuntu终端打开文件夹_如何在Ubuntu的文件浏览器中将终端打开到特定文件夹
  9. 日语入门难?学日语最好用的工具——早道五十音图
  10. Android8.0一键root,小米Mix 2(安卓8.0)一键ROOT详解教程,看教程ROOT