python串口采集数据绘制波形图

这个示例使用 matplotlib 绘制图形,它能够从串口实时读取数据并绘制成波形图。确保你已经替换了 'COM11' 和 9600 为正确的串口号和波特率。

python 复制代码
import serial
import matplotlib.pyplot as plt
from collections import deque
import struct

# 配置串口参数
ser = serial.Serial('COM11', 9600)  # 将'COM1'替换为你的串口号和波特率

# 创建空的数据列表
data = deque(maxlen=100)  # 保持最新的100个数据点

# 创建一个图形窗口
plt.ion()  # 开启交互模式
fig, ax = plt.subplots()
line, = ax.plot([])
ax.set_ylim(0, 255)  # 设置y轴范围,根据你的数据范围进行调整

# 读取并绘制串口数据
try:
    while True:
        try:
            # 读取一个字节的16进制数据
            value_hex = ser.read(1)
            
            if value_hex:
                # 将16进制数据转换为整数
                value = struct.unpack('B', value_hex)[0]
                data.append(value)
                line.set_ydata(data)
                line.set_xdata(range(len(data)))
                ax.relim()
                ax.autoscale_view()
                plt.pause(0.01)  # 更新图形,可以根据需要调整刷新频率
        except ValueError:
            continue
except KeyboardInterrupt:
    pass
finally:
    ser.close()
相关推荐
weixin_5806140044 分钟前
如何提取SQL日期中的年份_使用YEAR或EXTRACT函数
jvm·数据库·python
2301_813599551 小时前
SQL生产环境规范_数据库使用最佳实践
jvm·数据库·python
李可以量化1 小时前
QMT 量化实战:用 Python 实现线性回归通道,精准识别趋势中的支撑与压力(下)
python·qmt·量化 qmt ptrade
a9511416421 小时前
Go 中通过 channel 传递切片时的数据竞争与深拷贝解决方案
jvm·数据库·python
Dxy12393102161 小时前
Python 使用正则表达式将多个空格替换为一个空格
开发语言·python·正则表达式
qq_189807031 小时前
如何修改RAC数据库名_NID工具在集群环境下的改名步骤
jvm·数据库·python
zhangchaoxies1 小时前
如何检测SQL注入风险_利用模糊测试技术发现漏洞
jvm·数据库·python
Luca_kill2 小时前
MCP数据采集革命:从传统爬虫到智能代理的技术进化
爬虫·python·ai·数据采集·mcp·webscraping·集蜂云
zhangchaoxies2 小时前
CSS如何实现响应式弹性网格布局_配合media query修改flex-wrap属性
jvm·数据库·python
故事和你912 小时前
洛谷-数据结构1-1-线性表1
开发语言·数据结构·c++·算法·leetcode·动态规划·图论