如何在Python中利用DataReceived事件处理串口发送和接收数据?
时间: 2024-12-21 18:24:54 浏览: 13
在Python中,特别是在使用`pySerial`库来控制串口通信时,你可以通过监听`DataReceived`事件来处理串口的数据收发。下面是一个简单的示例:
```python
import serial
# 创建串口对象
ser = serial.Serial('COM1', 9600) # 这里替换为你实际的串口号和波特率
def data_received_handler(data):
print("接收到的数据:", data)
# 绑定DataReceived事件
ser.timeout = 1 # 设置超时时间防止阻塞
ser.wraparound = False # 防止数据溢出
ser parity = serial.PARITY_NONE # 设置校验位
ser.rts = True # 如果需要,可以设置RTS(请求发送)
ser.dtr = True # 同样,如果需要,可以设置DTR
ser.on_data_received = data_received_handler # 使用on_data_received属性绑定函数
# 发送数据
ser.write(b'Hello from Python!')
# 开始读取数据
ser.read_until() # 或者 ser.readline() 或 ser.read(size),这取决于你的需求
# 关闭串口前记得调用close()
ser.close()
```
在这个例子中,每当从串口接收到数据时,`data_received_handler`就会被调用。发送数据部分则展示了如何向串口发送字节流。
阅读全文