在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()方法向串口寫入數據。
通過這種方式,我們可以實現串口的收發數據功能,并且讀取和寫入串口數據的操作是在不同的線程中進行,保證了并發性和實時性。