树莓派同时打开两个串口读取数据
时间: 2023-08-22 13:06:51 浏览: 172
关于串口的打开与数据读取
当你需要同时打开两个串口读取数据时,可以使用多线程或多进程来实现并行读取。以下是一个使用多线程的示例代码:
```python
import serial
import threading
# 串口1的配置
port1 = '/dev/ttyUSB0'
baudrate1 = 9600
# 串口2的配置
port2 = '/dev/ttyUSB1'
baudrate2 = 9600
# 创建两个串口对象
ser1 = serial.Serial(port1, baudrate1)
ser2 = serial.Serial(port2, baudrate2)
def read_serial(ser):
while True:
line = ser.readline()
data = line.decode('utf-8').strip()
# 在这里进行数据解析和处理
print(f"Received from {ser.port}: {data}")
# 创建两个线程分别读取两个串口的数据
thread1 = threading.Thread(target=read_serial, args=(ser1,))
thread2 = threading.Thread(target=read_serial, args=(ser2,))
# 启动线程
thread1.start()
thread2.start()
```
上述代码中,我们创建了两个串口对象`ser1`和`ser2`,分别打开了两个串口设备。然后,我们定义了一个`read_serial`函数,在其中使用`readline`读取数据,并进行解析和处理。最后,我们创建了两个线程`thread1`和`thread2`,分别调用`read_serial`函数来读取对应的串口数据。
通过使用多线程,我们可以同时读取两个串口的数据。你可以根据需求进行修改和扩展。
希望这对你有帮助!如果你有任何其他问题,请随时提问。
阅读全文