通过QSerialPort接收数据缓慢

时间:2014-03-27 09:30:30

标签: c++ qt qtserialport

我从串口读取收到的数据的速度有问题。我正在使用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个样本 - 之后是1秒和暂停),但在我的程序数据中,频率大约为3-4 Hz。还值得注意的是,当我通过简单的串口终端(Hercules)连接到我的发射器时,我全速接收数据。这种行为可能是什么原因?我究竟做错了什么?有什么建议吗?

0 个答案:

没有答案