pyqt5 实现串口多线程接收数据的程序例子
时间: 2024-05-15 22:17:27 浏览: 215
好的,下面是一个简单的示例代码:
```python
import sys
import serial
import threading
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QThread
from PyQt5.QtWidgets import QApplication
class SerialThread(QThread):
data_received = pyqtSignal(str)
def __init__(self, port):
super().__init__()
self.port = port
self.is_running = False
def run(self):
ser = serial.Serial(self.port, 9600)
self.is_running = True
while self.is_running:
data = ser.readline().decode("utf-8")
if data:
self.data_received.emit(data)
def stop(self):
self.is_running = False
class GUI(QObject):
def __init__(self):
super().__init__()
@pyqtSlot(str)
def on_data_received(self, data):
print(data)
if __name__ == "__main__":
app = QApplication(sys.argv)
gui = GUI()
thread = SerialThread('/dev/ttyUSB0')
thread.data_received.connect(gui.on_data_received)
thread.start()
sys.exit(app.exec_())
```
这段程序使用 PyQt5 实现串口多线程接收数据,并在接收到数据后将其打印在控制台上。你可以参考这个示例来编写你自己的代码,根据你的需求做出相应的修改。
注意,在实际使用中,你还需要根据串口通信的具体要求来设置串口的参数,如波特率、数据位、停止位、校验方式等。此外,如果你需要在 GUI 界面上显示接收到的数据,可以在 on_data_received() 方法中添加相应的处理逻辑。
阅读全文