这个示例使用 matplotlib 绘制图形,它能够从串口实时读取数据并绘制成波形图。确保你已经替换了 ‘COM11’ 和 9600 为正确的串口号和波特率。
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()