QT通过串行端口传输大数据

时间:2018-11-22 15:21:57

标签: qt serial-port

我正在尝试通过QSerialPort(实际上是通过RS232连接)发送大量数据。目前,我可以获得约300个字节的80000个字节。我相信使用Putty,我可以看到所有数据都在传输,所以问题出在接收代码上。

接收方代码:

m_serial->waitForReadyRead(1000);
m_serial->waitForBytesWritten(20);
const QByteArray data = m_serial->readAll();

发射器代码:

QByteArray sendData;
sendData.setRawData((char *)dataBuf, m->bufSize + sizeof(*mHeader) + 1);
m_serial->write(sendData);

如果我发送任意数量的数据(至少是我得到的数据),我将获得有效数据。

将数据分解为单独的传输的唯一解决方案是

编辑:我应该提到我正在使用一个异步实现(来自QTs示例的一个-异步终端程序。不过,它仅发送和接收少量数据)

程序使用以下命令连接到readData()函数:

connect(m_serial, &QSerialPort::readyRead, this, &MainWindow::readData);

0 个答案:

没有答案