1、python的库非常多,功能同样十分强大,在现有的库的情况下,我们没有必要去重复造轮子,拿来用就可以了,在这里我选了pyserial库。

安装pyserial,使用pip工具,在cmd界面输入:pip install pyserial,等待安装完毕:

我们查看下pyserial的文档https://pythonhosted.org/pyserial/,我们要实现一个简单的串口助手功能,那我们串口组件部分需要的功能:

1)、可以搜索PC自带的串口;

2)、可以配置串口;

3)、可以打开关闭串口;

4)、可以发送以及接收数据;

5)、数据的格式可以以16进制或者utf-8来显示。

如此,我们来先实现搜索本地串口,查看pyserial的文档:

使用serial.tools.list_ports来搜索串口,新建com.py,敲入代码:

#coding:utf-8

import serial

import serial.tools.list_ports

def Get_ports():

clist=[]

port_list = list(serial.tools.list_ports.comports())

if len(port_list)> 0:

clist=[]

for e in port_list:

port_list_0 =list(e)

port_serial = port_list_0[0]

clist.append(port_serial)

print(clist)

Get_ports()

运行代码:

可以看到搜索到了串口1,我的电脑自带了一个串口。

接着我们来设置串口,包括串口名,波特率,数据位、停止位以及校验位。

try:

com.port = comname

com.baudrate = 115200

com.bytesize = 8

com.stopbits = 1

com.parity = serial.PARITY_NONE

com.open()

except Exception as e:

print(e)

设置完毕后直接打开,打开完了串口还必须有一个关闭串口的功能:

if com.isOpen():

com.close()

print("串口关闭")

代码已经有了,怎么集成到我们的串口界面中去,我们将串口操作这部分做成一个类来直接调用就可以了。

写成一个类:

#coding:utf-8

import serial

import serial.tools.list_ports

class opencom():

def __init__(self):

self.com=serial.Serial()

def initcom(self,comname):

try:

self.com.port = comname

self.com.baudrate = 115200

self.com.bytesize = 8

self.com.stopbits = 1

self.com.parity = serial.PARITY_NONE

except Exception as e:

print(e)

def opencom(self):

try:

self.com.open()

except Exception as e:

print(e)

return self.com.isOpen()

def CloseCom(self):

if self.com.isOpen():

self.com.close()

print("串口关闭")

def Get_ports(self):

clist=[]

port_list = list(serial.tools.list_ports.comports())

if len(port_list)> 0:

clist=[]

for e in port_list:

port_list_0 =list(e)

port_serial = port_list_0[0]

clist.append(port_serial)

return clist

敲入调用代码:

c1=opencom()

clist=c1.Get_ports()

if len(clist)>0:

comname=clist[0]

c1.initcom(comname)

if c1.opencom():

c1.CloseCom()

在cmd中运行:

下节课我们将代码与界面来进行信号绑定,在我们的丑陋的界面来进行操作。

本教程为个人原创,如有转载请注明出处,头条号:python自动化

openmv串口数据 串口助手_第三课使用pyserial来接收和发送串口数据相关推荐

  1. Java:PC端作为客户端连接蓝牙设备并接收蓝牙发送的数据

    感谢:(1)PC端蓝牙开发  https://www.cnblogs.com/zeussbook/p/12827479.html https://blog.csdn.net/svizzera/arti ...

  2. Android客户端通过TCP接收服务器端发送的数据

    引言 因为我确实不懂TCP通信这一块儿,最近项目中要实现客户端接收服务器端发送过来的数据(这个数据是int型的,范围是0~360,而且服务器端用C语言写的,每一秒发送一次,客户端只需要不断接收就好了) ...

  3. #串口通信超时处理_【学院推荐】划重点!LabVIEW中串口参数需注意的几点

    串口可以说是我们最容易见到,也最容易接触到的一种总线,台式机上一般都有二个,而现在很多下位机.仪器等很多都还是使用串口通信的. 1,串口扩展的问题 先说一下串口的扩展问题,一般的台式机或工控机上都至少 ...

  4. python爬虫_第三课_聚焦爬虫

    目录 导言 正则表达式进行数据解析 爬取图片分析: 爬取整张网页的图片 代码 爬取分页的图片 bs4进行数据解析 原理介绍: 环境安装: 如何实例化BeautifulSoup对象: 代码: 结果展示: ...

  5. 【Flink实战系列】为什么我的Flink任务正常运行,UI上却不显示接收和发送的数据条数呢?

    最近发现有好几个同学问我这个问题,为什么我的Flink任务正常运行,数据也可以打印,而且都保存到数据库了,但是UI上面却不显示数据接收和发送的条数,我都快被问疯了,今天就给大家详细说一下这个小问题. ...

  6. [C#] 接收和发送UDP数据

    除了点对点,通常UDP数据的传递方式有两种,一种是BroadCast,一种是MultiCast.中文一般把它们翻译作广播和组播.前者是简单的在局域网里面广播:后者是借助路由器将数据发送到包括英特网在内 ...

  7. form data怎么接收_VUE发送Formdata数据,NodeJS接收

    VUE发送Formdata数据 •参数blob是通过this.cropper.getCroppedCanvas().toBlob(blob => { });获取到的.•具体使用方法,参考此链接地 ...

  8. OPENV接收和发送串口的数据

    import sensor, image, time from pyb import UART from pyb import Pin, Timer, LEDimport resensor.reset ...

  9. easyui数据表格重置_数据库三种删除方式

    第一种 使用delete 语句 特点: delete 属于数据库操纵语言DML,表示删除表中的数据, 删除过程是每次从表中删除一行,并把该行删除操作作为事务记录在日志中保存 可以配合事件(transa ...

最新文章

  1. jQuery Template的用法
  2. webpack vue app.js自动注入页面.为app.js增加随机参数
  3. python3邮件_python3使用SMTP发送HTML格式邮件
  4. jquery插件分类与编写详细讲解
  5. Twitch未来五年的视频编码战略:从H.264到 AV1
  6. QUIC DataChannels的第一步
  7. [转]“Ceph浅析”系列之(—)—Ceph概况
  8. arcengine 加载地图不显示_layUi的html页面动态加载的元素不显示
  9. 分布式搜索elasticsearch 索引文档的增删改查 入门
  10. Nginx源码分析 - 基础数据结构篇 - 内存池 ngx_palloc.c(02)
  11. LINUX内核的进程调度策略
  12. R语言 最新TwoSampleMR、MRInstruments包安装教程
  13. 5773. 插入后的最大值
  14. AForge学习笔记(10):AForge.Imaging.Filters
  15. 2023年经济危机要来了,如何度过这个难关?
  16. Unity3D相机操控(完整模拟Scene视图操作)
  17. IDEA 源根之外的Java文件
  18. 光标怎么设置sap_设置placeholder光标
  19. 论文阅读笔记: (2022 TPAMI) Ultra Fast Deep Lane Detection with Hybrid Anchor Driven Ordinal Classification
  20. 基于python的简介以及应用知识,快做好,要发车啦(文末有个投票)

热门文章

  1. python怎么调用navicat_三十七、python操作mysql,和navicat
  2. mitmproxy抓包 | Python实时生成接口自动化用例(三)
  3. Linux系统性能查询命令
  4. 基于百度AI+jquery-webcam+servlet实现人脸识别登录,兼容各主流浏览器
  5. 题目1017:还是畅通工程(最小生成树初步应用)
  6. JavaScript和jQuery的学习
  7. PHP的ISAPI和FastCGI比较
  8. linux开启ssh服务,实现ssh远程登录
  9. 完全卸载HDP和Ambari
  10. python里else中文意思_Python循环语句中else的用法总结