You do not need a separate thread to read from a serial port. Unless the thread has another reason for existing it only complicates what should be a straightforward problem.I'm surprised because my QSerialPort instance is in the separte thread with the QTimer.
Bookmarks