使用Python读取串口数据
Python读取串口数据
- 使用Python读取串口数据
- 1.编程流程
- 2.应用serial库
- 3.编码设计
- 4.编程实现
使用Python读取串口数据
1.编程流程
串口数据流程为,
1.实例化串口连接,
2.初始化设置连接属性,
3.连接串口硬件,
4.读取传输缓存区的串口数据。
使用Python的serial库进行读写串口数据。
pip3 install serial
技巧:重复运行上述pip指令,可输出当前serial依赖库的存放位置。
参考教程:https://www.jb51.net/article/170801.htm.
2.应用serial库
分析1中功能流程,进行如下汇总:
- 串口连接配置1:实例化串口连接
- 串口连接配置2:配置串口参数,并连接串口
- 串口连接配置3:读取串口数据
- 加上功能:核验接收数据
3.编码设计
将上面的功能,进行如下进行设计:
- 串口参数配置设为变量,初始化串口连接时进行调用
- 读取串口数据,写入文件
- 判断:串口数据数据格式,每包数据长度
4.编程实现
- 编写函数,实现读取串口操作
def msg_list():# 新建一个列表,返回该串口数据,做后续数据处理使用msg_list = list()# 准备一个文件,保存数据r = r'E:\py\0.txt'write_file = open(r, 'wb')# 配置串口名称、比特率、超时时间port = 'COM3'bps = 1152000timex = 1# 连接串口ser = serial.Serial(port, bps, timeout=timex)print(ser)# 等下时间,去启动串口发送程序。不然,程序会直接进入判断串口数据直接结束time.sleep(3)# 进入读写过程while True:# 判断当前写入区有没有串口数据if ser.in_waiting:# 读数据msg = ser.readall()# 写入数据到文件里write_file.write(msg)# 将数据转成16进制数,存入列表中msg_list = list(msg.hex)else:# 当串口写入缓存区没数据,关闭串口和文件,结束读写操作ser.close()write_file.close()break# 保存的串口数据列表做这次函数的返回值return msg_list
有了一组串口数据,后续就可以自定义发挥了。
if __name__ == '__main__':a = msg_list()# 由于我的发串口程序是发16进制的固定长度为160的数据包,所以进行按固定长度分割列表。列表里的索引就为每一个数据包的次序。# 补充,串口配置默认是按每8bit位读取(可配置),所以在数据里,一包总长度为160 * 2 = 320a1 = [a[i:i+162*2]] for i in range(0, len(items), 162*2)# 判断下,每帧串口数据头是否正确# 由于缓存区存在内存大小限制。预估在结尾容易发生丢包,所以加个长度判断for i in range(0, len(a1)):if a1[i][0:4] = ['a', 'b', 'c', 'd'] and len(a[i]) == 160*2:passelse:# 输出第一次不正确的上下行数据print('到了', i)print(a1[i-1])print(a1[i])break
使用Python读取串口数据相关推荐
- python读取串口数据保存到mysql数据库_Python3读取Excel数据存入MySQL的方法
Python是数据分析的强大利器. 利用Python做数据分析,第一步就是学习如何读取日常工作中产生各种excel报表并存入数据中,方便后续数据处理. 这里向大家分享python3如何使用xlrd读取 ...
- python读取串口数据 绘图_使用Python串口实时显示数据并绘图的例子
使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:Anaconda3Scri ...
- python串口通信_python 读取串口数据的示例
python3 读取串口数据 demo 最近在写一个demo,zigbee串口连接树莓派,树莓派使用串口通信接受zigbee穿过来得值.其中我是用的树莓派是3代B+,zigbee每隔三秒钟从串口输出数 ...
- python监听串口数据_python 读取串口数据的示例
python3 读取串口数据 demo 最近在写一个demo,zigbee串口连接树莓派,树莓派使用串口通信接受zigbee穿过来得值.其中我是用的树莓派是3代B+,zigbee每隔三秒钟从串口输出数 ...
- python读取excelsheet-一文看懂用Python读取Excel数据
原标题:一文看懂用Python读取Excel数据 导读:现有的Excel分为两种格式:xls(Excel 97-2003)和xlsx(Excel 2007及以上). Python处理Excel文件主要 ...
- python读取表格数据_Python读取Excel数据并根据列名取值
一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...
- 如何在QT中读取串口数据
总是能在别人的博客中学到太多太多,谢谢各位对知识的无私共享,谢谢大家 前言 去年我使用Qt编写串口通信程序时,将自己的学习过程写成了教程(Qt编写串口通信程序全程图文讲解),但是由于时间等原因,我只实 ...
- python读取grib2数据_python读取grib grib2气象数据
GRIB是WMO开发的一种用于交换和存储规则分布数据的二进制文件格式,主要用来表示数值天气预报的产品资料.现行的GRIB 码版本有GRIB1 和GRIB2 两种格式.由于小编只接触过GRIB1数据,所 ...
- web前端读取串口数据
来自扫码枪应用适配的经验及扩展. 查了好多资料,发现实现思路不外乎以下几种: 1.使用服务端开发语言开发一个读取串口数据的本地服务模块,并实现websocket长连接支持,前端开启长连接到该服务,根据 ...
最新文章
- Hadoop学习笔记(1) ——菜鸟入门
- win8网速怎么测试软件,Windows8小技巧:查看当前网速
- android 设置 媒体服务器,第三讲:如何掌握媒体服务器的运行情况
- servlet的几个函数
- spring分布式事务示例_Spring声明式事务示例
- 十位值得关注的Java顶级专家
- ②你真的学会Java了吗?来自《卷Ⅰ》的灵魂提问
- python pyqt5 线程 暂停 重启_如何在PyQT5中暂停/播放线程?
- c/c++ 标准库 string
- 晶圆级封装行业调研报告 - 市场现状分析与发展前景预测
- c 无回显读取字符/不按回车即获取字符
- CENTOS6.6上搭建单实例ORACLE12C
- Android下USB的虚拟串口功能
- mysql函数变量存储_MySQL存储过程、存储函数、变量
- hosts文件的修改方法
- 【动画消消乐】HTML+CSS 自定义加载动画:清新折叠方块效果 063(附源码及原理详解)
- 华灿光电收购美新半导体 未来形成LED和传感器双主业发展
- requestSubscribeMessage:fail can only be invoked by user TAP gesture 微信小程序调起订阅消息失败
- 房屋水电煤气省钱秘籍
- 修改Echarts源码实现柱状图的炫彩闪烁效果