Python 串口数据打包与解析
Python 串口数据打包与解析
- 介绍
- 从字符串到字节流
- 对字节流的解析
介绍
通常用python写好上位机要与板子通过串口通信的时候(比如命令,参数等),对于这之间的数据格式转换是有特定要求的,比如上位机到板子之间是以字节流进行数据传输,而用户输入到上位机的数据通常是字符串;当接收数据时,又需要将字节流进行相应格式的组合解析。
从字符串到字节流
法1:使用bytes(arg)函数,因为参数arg需要时列表[ ]类型,所以需要将传入的数据进行转换,直接上代码,如下:
解析:
- input():获取用户输入的参数,不过此时是字符串的格式
- split() :以空格为间隔,对该字符串进行分割,转成了列表类型,不过内容都是字符串
- int() :利用int()函数将list列表里的内容转为整型
- bytes() :此函数可以直接将内容转化为字节流的类型,这样就可以使用python的serial.write发送数据
法2:使用python的库struct,具有打包和解包的功能,代码如下
struct.pack(fmt,arg1,arg2,),在传入有限个参数(命令,地址,数据长度)进行打包是很好用的,包括对字节流的解析也会用到它关于它的使用建议好好看看,可以参考这个python struct详解
以上介绍了两种方法,优缺点如下,二者可以混合使用,以求到达最好效果
对字节流的解析
接收串口发来的数据时,一般时一个字节一个字节传来的,我们可以每读取一个字节就将其存入一个列表中,格式类似如下:
注意:列表里面都是bytes对象,为了将其解析,需要先转换为int型
data = int.frombytes(m[0] , ‘big’)
关于int.frombytes()函数的用法可以去查查,作用就是将一个bytes类型的数据转换为int类型
转换后的m如下:
因为struct.unpack()函数是针对字节流处理的,故需要将m由一个列表类型转换为字节流
就能用struct.unpack对字节流按照用户设定的格式进行解析,如下
Python 串口数据打包与解析相关推荐
- python串口数据绘图_使用Python串口实时显示数据并绘图的例子
使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:\Anaconda3\Sc ...
- python分析数据包_Python解析pcap数据包
Post Views: 29,789 零.前言 历时数月,终于结束了考研初试,Blog也很长时间没有更新了,期间还是有些小伙伴来Blog看文章很是感动.以后一定会坚持更新,尽量给大家推送一些干货.这次 ...
- python串口数据分包_python TCP Socket的粘包和分包的处理详解
概述 在进行TCP Socket开发时,都需要处理数据包粘包和分包的情况.本文详细讲解解决该问题的步骤.使用的语言是Python.实际上解决该问题很简单,在应用层下,定义一个协议:消息头部+消息长度+ ...
- python 串口数据读取
环境:ubuntu18.04 python3.6 1. 绑定串口号与串口设备 背景:一台主机与多个串口模块连接,每次开机会使得设备的串口号发生变化,需要对串口号与串口设备进行绑定. (1)查看串口设备 ...
- python是怎样处理串口数据的_python是怎样处理串口数据的
python 串口传输问题 首先用USB线连上串口设备,然后确认是哪个COM口,下面用COM3为例. import serial t=serial.Serial('COM3',115200) comm ...
- pythonos pathjson_Python Json数据文件操作原理解析
引言 接口测试就是数据的测试,在测试之前,需要准备好测试数据,而测试数据可以用数据库.excel.txt和csv方式,当然还有一种方式,那就是使用json文件来储存测试数据.常用的方式就是这些. 设计 ...
- python 3下对stm32串口数据做解析
1.最近有个想做一个传感器数据实时显示的上位机,常规的数据打印太频繁了,无法直观的看出数据的变化. python下的上位机实现起来简单一点,网上找了一些python界面Tkinter相关资料和pyth ...
- python串口实时读取数据画图_python串口绘图
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! (已完成)pythonapi操作tecplot做数据处理(已完成)用pyauto ...
- # Python 字符串数据(二进制编码数据)格式转换及解析
Python 字符串数据(二进制编码数据)格式转换及解析 最近在linux上部署python,希望可以用python来调用串口,同时可以实现数据的格式转换. 在python这个做格式化转换不熟悉,花了 ...
最新文章
- 你所知道的都是错的!产品经理的十大认知错误
- Linux安装Redis完整步骤
- 详细易懂的二叉树遍历(先中后)
- ThinkPHP - 6 - 学习笔记(2015.5.4)
- PM2.5环境检测系统的设计与分析
- 下三角矩阵的逆矩阵_上三角或下三角矩阵的逆矩阵能否简便方法求出??只有主副对角线不为0的矩阵能否直接写出逆矩阵。...
- hadoop连接远程mysql_MySQL设置远程连接
- OPPO技术开放日第二期启动,聚焦碎片化场景下的流量探索
- mongodb pv uv ip 统计
- 卷积神经网络第四周作业1 - Face Recognition for the Happy House - v1
- javascript怎么定义类数组对象
- 计算机搜索不了硬盘文件资料,解决WINDOWS痛点,本地文件搜索从未如此简单
- 乘法和绝对值的C语言,关于C语言的函数调用与绝对值用法!
- 比热容相关的热量计算机应用,13章三节比热容.doc
- #业余学习 java基础
- windows下php连接Oracle配置
- 各种品牌类型的主板 电脑开机启动选项快捷键
- java订餐系统_Java——吃货联盟订餐系统
- 安卓原生应用开发!一起刷完了这份1307页的安卓面试宝典吧,值得收藏!
- 使用spring data JPA,or跟and的合并使用语句拼凑or跟and的合并使用需要密切注意
热门文章
- Qt入门教程【对话框】QInputDialog输入对话框
- SolidWorks工程图中材料明细表的一些操作
- 嵌入式编程基本概念和常识
- 解决Cfree [Error] g++.exe: 5\mingw\lib\: No such file or directory
- 抓取服务器作业文档不存在,易飞ERP客户问题集.doc
- python网页爬虫菜鸟教程_Python 爬取菜鸟教程(www.runoob.com)内容。并保在本地(html格式/pdf格式)...
- 后处理之TCL语言教程
- 高德地图 android key,Android实现高德地图key值申请和地图显示
- C++代码静态分析与优化(1)_cppcheck
- 得到maya相机分辨率