基于多线程的串口读写操作的Demo,一个线程用于读取串口数据,另一个线程用于将数据从串口发送出去
时间: 2024-02-27 17:59:11 浏览: 22
以下是一个基于Python的多线程串口读写操作的示例代码:
```python
import serial
import threading
ser = serial.Serial('COM1', 115200) # 打开串口,设置波特率为115200
def read_thread():
while True:
data = ser.read(1024) # 读取串口数据
# 处理数据
print("Received data:", data)
def write_thread():
while True:
data = input("Enter data to send:") # 从控制台输入数据
ser.write(data.encode()) # 发送数据到串口
# 创建并启动读线程和写线程
read_t = threading.Thread(target=read_thread)
write_t = threading.Thread(target=write_thread)
read_t.start()
write_t.start()
```
在这个示例代码中,我们创建了两个线程:一个用于读取串口数据,另一个用于将数据从串口发送出去。读线程在一个无限循环中持续读取串口数据,并将数据处理后输出到控制台。写线程也在一个无限循环中持续从控制台读取数据,并将数据发送到串口。
需要注意的是,由于串口操作是阻塞的,所以这个示例代码中的读线程和写线程都是无限循环的,不会退出。如果需要退出线程,可以使用线程的`Event`对象或者`Condition`对象等机制来实现。