Может ли QSerialPort считывать более 512 байт данных?

Я хочу использовать QSerialPort для чтения данных, передаваемых с устройства. Устройство передает кадр 4000 байтов данных каждый раз. Я пытаюсь с помощью следующего простого кода

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

Проблема в том, что он всегда показывает, что считываются только 512 байтов данных. Как я могу прочитать весь фрейм данных 4000 байтов? (когда я использую Matlab для чтения этого кадра 4000 байт, он работает нормально)

Ответы на вопрос(2)

Ваш ответ на вопрос