¿QSerialPort puede leer más de 512 bytes de datos?

Quiero usar QSerialPort para leer los datos transmitidos desde un dispositivo. El dispositivo transmite una trama de 4000 bytes de datos cada vez. Intento con el siguiente código simple

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();
}

El problema es: siempre muestra que solo se leen 512 bytes de datos. ¿Cómo puedo leer el marco de datos completo de 4000 bytes? (cuando uso Matlab para leer este marco de 4000 bytes, funciona bien)

Respuestas a la pregunta(2)

Su respuesta a la pregunta