我从串口读取接收到的数据的速度有问题。我正在使用 QSerialPort 类。我已经正确配置了(设置与发射器上设置的串行端口选项相同的串行端口选项)。在 MainWindow 构造函数中,当我读取原始数据时,我已将来自 QSerialPort 的信号连接到 MainWindow 的方法 (readData())。看起来像:
MainWindow()
{
std::shared_ptr<QSerialPort> serial; //don't aks me why shared_prt - it has to be shared_ptr, no other option.
serial = std::shared_ptr<QSerialPort>(new QSeralPort)
connect(serial.get(),SIGNAL( readyRead()),this,SLOT(readData()));
}
void MainWindow::readData()
{
QByteArray data = serial->readLine();
qDebug() << data;
}
数据看起来像:“s03445\n”。程序正确读取和呈现数据,但非常非常慢(例如它打印“s3445”)。数据以大约 20 Hz 的频率发送(400 个样本 - 之后是一秒的暂停),但在我的程序数据中,以大约 3-4 Hz 的频率存在。还值得注意的是,当我通过简单的串行端口终端 (Hercules) 连接到我的发射器时,我会全速接收数据。这种行为可能是什么原因?我究竟做错了什么?有什么建议么?