请把接收到的数据保存到数组的操作写到回调函数中,再给一份代码
时间: 2024-03-06 12:52:04 浏览: 47
好的,以下是一个简单的示例代码,将接收到的数据保存到名为 `data` 的数组中:
```python
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600) # 以 9600 波特率打开串口 /dev/ttyUSB0
data = [] # 用于保存接收到的数据
def on_data_received(data):
data.append(data) # 将接收到的数据保存到数组中
ser.timeout = 1 # 设置超时时间(单位:秒)
ser.write(b'Hello, world!') # 发送数据
while True:
line = ser.readline().decode('utf-8').rstrip() # 读取一行数据并转换为字符串
if line:
on_data_received(line) # 调用回调函数处理接收到的数据
else:
break
ser.close() # 关闭串口
```
在上面的代码中,我们定义了一个名为 `on_data_received` 的回调函数,每当接收到数据时,该函数将把数据保存到名为 `data` 的数组中。在主循环中,我们使用 `readline()` 函数从串口读取一行数据,并检查是否读取到了数据。如果读取到了数据,就调用 `on_data_received()` 函数来处理它。当 `readline()` 函数返回空行时,说明已经读取完了所有数据,此时退出主循环并关闭串口。
阅读全文