不然重新写一个吧还是有错误,我的python版本是3.9
时间: 2024-03-13 08:43:29 浏览: 103
好的,让我们重新编写代码。以下是一个可以接收串口数据并将数据写入 Excel 表格以及实时绘制折线图的 Python 代码:
```python
import serial
import time
import openpyxl
from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference
# 打开串口
ser = serial.Serial('COM3', 9600, timeout=1)
# 创建 Excel 表格
wb = Workbook()
ws = wb.active
ws.append(['Time', 'Data'])
# 创建折线图
chart = LineChart()
chart.title = 'Serial Data'
chart.x_axis.title = 'Time'
chart.y_axis.title = 'Data'
chart.style = 13
data = Reference(ws, min_col=2, min_row=1, max_row=10)
series = LineChart.Series(data, title='Data')
chart.append(series)
ws.add_chart(chart, 'C1')
# 读取串口数据
while True:
data = ser.readline().decode().strip()
if data:
# 写入 Excel 表格
row = [time.strftime('%Y-%m-%d %H:%M:%S'), data]
ws.append(row)
wb.save('data.xlsx')
# 更新折线图
if ws.max_row > 10:
data = Reference(ws, min_col=2, min_row=ws.max_row - 9, max_row=ws.max_row)
series.values = data
series.title = 'Data'
chart.series[0] = series
wb.save('data.xlsx')
```
这个代码会不断读取串口数据,并将数据写入 Excel 表格中。同时,它会实时绘制最新的 10 个数据点的折线图。在代码运行时,你需要将串口连接到电脑上,并根据实际情况修改串口号和波特率。你还需要安装 `pyserial` 和 `openpyxl` 库。
请注意,这只是一个示例代码,实际使用时可能需要进行更多的修改和优化。
阅读全文