Kann QSerialPort mehr als 512 Datenbytes lesen?

Ich möchte QSerialPort zum Lesen der von einem Gerät übertragenen Daten verwenden. Das Gerät überträgt jedes Mal einen Frame mit 4000 Datenbytes. Ich versuche es mit dem folgenden einfachen Code

QSerialPort *serialPort;
char receivedData[4000];
int numRead = 0;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    /* Initialize serial port*/
    serialPort = new QSerialPort(this);
    QString portName = "COM6";
    qint32 baudRate = 460800;
    serialPort->setPortName(portName);
    serialPort->setBaudRate(baudRate);
    serialPort->setDataBits(QSerialPort::Data8);
    serialPort->setParity(QSerialPort::NoParity);
    serialPort->setStopBits(QSerialPort::OneStop);
    serialPort->setFlowControl(QSerialPort::NoFlowControl);
    serialPort->setReadBufferSize(4000);
    if (!serialPort->open(QIODevice::ReadOnly)) {
        qDebug() << "Cannot open comport";
    }
    connect(serialPort, SIGNAL(readyRead()), this, SLOT(serialReceived()));
}

void MainWindow::serialReceived()
{
    numRead = serialPort->read(receivedData, 4000);
    serialPort->flush();
}

Das Problem ist: Es wird immer angezeigt, dass nur 512 Datenbytes gelesen werden. Wie kann ich den gesamten 4000-Byte-Datenrahmen lesen? (Wenn ich Matlab verwende, um diesen 4000-Byte-Frame zu lesen, funktioniert er einwandfrei.)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage