温馨提示×

Ubuntu串口如何实现多线程通信

小樊
102
2024-07-12 02:14:35
栏目: 智能运维

在Ubuntu系统中,可以使用多种方式来实现串口的多线程通信,其中一种比较常见且简单的方法是使用Python编程语言结合pySerial库来实现。

以下是一个示例代码,演示了如何在Ubuntu系统中使用Python和pySerial库实现串口的多线程通信:

import serial
import threading

# 串口配置
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)

# 读取串口数据的线程
def read_serial():
    while True:
        data = ser.readline().decode().strip()
        if data:
            print(f"Received data: {data}")

# 写入串口数据的线程
def write_serial():
    while True:
        data = input("Enter data to send: ")
        ser.write(data.encode())

# 创建并启动读取串口数据的线程
read_thread = threading.Thread(target=read_serial)
read_thread.start()

# 创建并启动写入串口数据的线程
write_thread = threading.Thread(target=write_serial)
write_thread.start()

在上面的代码中,首先配置了串口(/dev/ttyUSB0),然后创建了两个线程,一个用于读取串口数据,另一个用于写入串口数据。read_serial函数通过ser.readline()方法读取串口数据,write_serial函数通过ser.write()方法向串口写入数据。

通过这种方式,我们可以实现串口的收发数据功能,并且读取和写入串口数据的操作是在不同的线程中进行,保证了并发性和实时性。

0