openmv串口数据 串口助手_第三课使用pyserial来接收和发送串口数据
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来接收和发送串口数据相关推荐
- Java:PC端作为客户端连接蓝牙设备并接收蓝牙发送的数据
感谢:(1)PC端蓝牙开发 https://www.cnblogs.com/zeussbook/p/12827479.html https://blog.csdn.net/svizzera/arti ...
- Android客户端通过TCP接收服务器端发送的数据
引言 因为我确实不懂TCP通信这一块儿,最近项目中要实现客户端接收服务器端发送过来的数据(这个数据是int型的,范围是0~360,而且服务器端用C语言写的,每一秒发送一次,客户端只需要不断接收就好了) ...
- #串口通信超时处理_【学院推荐】划重点!LabVIEW中串口参数需注意的几点
串口可以说是我们最容易见到,也最容易接触到的一种总线,台式机上一般都有二个,而现在很多下位机.仪器等很多都还是使用串口通信的. 1,串口扩展的问题 先说一下串口的扩展问题,一般的台式机或工控机上都至少 ...
- python爬虫_第三课_聚焦爬虫
目录 导言 正则表达式进行数据解析 爬取图片分析: 爬取整张网页的图片 代码 爬取分页的图片 bs4进行数据解析 原理介绍: 环境安装: 如何实例化BeautifulSoup对象: 代码: 结果展示: ...
- 【Flink实战系列】为什么我的Flink任务正常运行,UI上却不显示接收和发送的数据条数呢?
最近发现有好几个同学问我这个问题,为什么我的Flink任务正常运行,数据也可以打印,而且都保存到数据库了,但是UI上面却不显示数据接收和发送的条数,我都快被问疯了,今天就给大家详细说一下这个小问题. ...
- [C#] 接收和发送UDP数据
除了点对点,通常UDP数据的传递方式有两种,一种是BroadCast,一种是MultiCast.中文一般把它们翻译作广播和组播.前者是简单的在局域网里面广播:后者是借助路由器将数据发送到包括英特网在内 ...
- form data怎么接收_VUE发送Formdata数据,NodeJS接收
VUE发送Formdata数据 •参数blob是通过this.cropper.getCroppedCanvas().toBlob(blob => { });获取到的.•具体使用方法,参考此链接地 ...
- OPENV接收和发送串口的数据
import sensor, image, time from pyb import UART from pyb import Pin, Timer, LEDimport resensor.reset ...
- easyui数据表格重置_数据库三种删除方式
第一种 使用delete 语句 特点: delete 属于数据库操纵语言DML,表示删除表中的数据, 删除过程是每次从表中删除一行,并把该行删除操作作为事务记录在日志中保存 可以配合事件(transa ...
最新文章
- jQuery Template的用法
- webpack vue app.js自动注入页面.为app.js增加随机参数
- python3邮件_python3使用SMTP发送HTML格式邮件
- jquery插件分类与编写详细讲解
- Twitch未来五年的视频编码战略:从H.264到 AV1
- QUIC DataChannels的第一步
- [转]“Ceph浅析”系列之(—)—Ceph概况
- arcengine 加载地图不显示_layUi的html页面动态加载的元素不显示
- 分布式搜索elasticsearch 索引文档的增删改查 入门
- Nginx源码分析 - 基础数据结构篇 - 内存池 ngx_palloc.c(02)
- LINUX内核的进程调度策略
- R语言 最新TwoSampleMR、MRInstruments包安装教程
- 5773. 插入后的最大值
- AForge学习笔记(10):AForge.Imaging.Filters
- 2023年经济危机要来了,如何度过这个难关?
- Unity3D相机操控(完整模拟Scene视图操作)
- IDEA 源根之外的Java文件
- 光标怎么设置sap_设置placeholder光标
- 论文阅读笔记: (2022 TPAMI) Ultra Fast Deep Lane Detection with Hybrid Anchor Driven Ordinal Classification
- 基于python的简介以及应用知识,快做好,要发车啦(文末有个投票)
热门文章
- python怎么调用navicat_三十七、python操作mysql,和navicat
- mitmproxy抓包 | Python实时生成接口自动化用例(三)
- Linux系统性能查询命令
- 基于百度AI+jquery-webcam+servlet实现人脸识别登录,兼容各主流浏览器
- 题目1017:还是畅通工程(最小生成树初步应用)
- JavaScript和jQuery的学习
- PHP的ISAPI和FastCGI比较
- linux开启ssh服务,实现ssh远程登录
- 完全卸载HDP和Ambari
- python里else中文意思_Python循环语句中else的用法总结