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. 串口连接配置1:实例化串口连接
  2. 串口连接配置2:配置串口参数,并连接串口
  3. 串口连接配置3:读取串口数据
  4. 加上功能:核验接收数据

3.编码设计

将上面的功能,进行如下进行设计:

  1. 串口参数配置设为变量,初始化串口连接时进行调用
  2. 读取串口数据,写入文件
  3. 判断:串口数据数据格式,每包数据长度

4.编程实现

  1. 编写函数,实现读取串口操作
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读取串口数据相关推荐

  1. python读取串口数据保存到mysql数据库_Python3读取Excel数据存入MySQL的方法

    Python是数据分析的强大利器. 利用Python做数据分析,第一步就是学习如何读取日常工作中产生各种excel报表并存入数据中,方便后续数据处理. 这里向大家分享python3如何使用xlrd读取 ...

  2. python读取串口数据 绘图_使用Python串口实时显示数据并绘图的例子

    使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:Anaconda3Scri ...

  3. python串口通信_python 读取串口数据的示例

    python3 读取串口数据 demo 最近在写一个demo,zigbee串口连接树莓派,树莓派使用串口通信接受zigbee穿过来得值.其中我是用的树莓派是3代B+,zigbee每隔三秒钟从串口输出数 ...

  4. python监听串口数据_python 读取串口数据的示例

    python3 读取串口数据 demo 最近在写一个demo,zigbee串口连接树莓派,树莓派使用串口通信接受zigbee穿过来得值.其中我是用的树莓派是3代B+,zigbee每隔三秒钟从串口输出数 ...

  5. python读取excelsheet-一文看懂用Python读取Excel数据

    原标题:一文看懂用Python读取Excel数据 导读:现有的Excel分为两种格式:xls(Excel 97-2003)和xlsx(Excel 2007及以上). Python处理Excel文件主要 ...

  6. python读取表格数据_Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  7. 如何在QT中读取串口数据

    总是能在别人的博客中学到太多太多,谢谢各位对知识的无私共享,谢谢大家 前言 去年我使用Qt编写串口通信程序时,将自己的学习过程写成了教程(Qt编写串口通信程序全程图文讲解),但是由于时间等原因,我只实 ...

  8. python读取grib2数据_python读取grib grib2气象数据

    GRIB是WMO开发的一种用于交换和存储规则分布数据的二进制文件格式,主要用来表示数值天气预报的产品资料.现行的GRIB 码版本有GRIB1 和GRIB2 两种格式.由于小编只接触过GRIB1数据,所 ...

  9. web前端读取串口数据

    来自扫码枪应用适配的经验及扩展. 查了好多资料,发现实现思路不外乎以下几种: 1.使用服务端开发语言开发一个读取串口数据的本地服务模块,并实现websocket长连接支持,前端开启长连接到该服务,根据 ...

最新文章

  1. Hadoop学习笔记(1) ——菜鸟入门
  2. win8网速怎么测试软件,Windows8小技巧:查看当前网速
  3. android 设置 媒体服务器,第三讲:如何掌握媒体服务器的运行情况
  4. servlet的几个函数
  5. spring分布式事务示例_Spring声明式事务示例
  6. 十位值得关注的Java顶级专家
  7. ②你真的学会Java了吗?来自《卷Ⅰ》的灵魂提问
  8. python pyqt5 线程 暂停 重启_如何在PyQT5中暂停/播放线程?
  9. c/c++ 标准库 string
  10. 晶圆级封装行业调研报告 - 市场现状分析与发展前景预测
  11. c 无回显读取字符/不按回车即获取字符
  12. CENTOS6.6上搭建单实例ORACLE12C
  13. Android下USB的虚拟串口功能
  14. mysql函数变量存储_MySQL存储过程、存储函数、变量
  15. hosts文件的修改方法
  16. 【动画消消乐】HTML+CSS 自定义加载动画:清新折叠方块效果 063(附源码及原理详解)
  17. 华灿光电收购美新半导体 未来形成LED和传感器双主业发展
  18. requestSubscribeMessage:fail can only be invoked by user TAP gesture 微信小程序调起订阅消息失败
  19. 房屋水电煤气省钱秘籍
  20. 修改Echarts源码实现柱状图的炫彩闪烁效果

热门文章

  1. Qt入门教程【对话框】QInputDialog输入对话框
  2. xmpp协议抓包_在MAC下基于Openfire和Spark的XMPP协议实现
  3. HTML下拉框、二级联动 select多级联动
  4. EasyConnect服务器启动失败,建议关闭浏览器后重新登录
  5. 兰州中考计算机考试,兰州城市四区2017年中考考务工作安排
  6. 电路邱关源学习笔记——1.4电路元件
  7. 74LS273内部逻辑结构
  8. MacBook 向日葵无法控制别人的电脑
  9. 朋友面试大数据架构师岗,碰了一鼻子灰后发现…
  10. 注意stm32定时器的倍频器