Qt读串口数据耗时测试

发布时间 2023-03-31 09:30:42作者: 伟大的厨师

 

    QTimer *timer = new QTimer();
    connect(timer, SIGNAL(timeout()), this, SLOT(OnTimeoutSendDataToRadio1()));
    timer->start(1000);
    qDebug()<<"Start Timer...";
    m_pSerialPortWK3 = new QSerialPort();
    connect(m_pSerialPortWK3, SIGNAL(readyRead()), this, SLOT(OnDataRecvdRadio2Data())); //for Anyc
    QString comPort = "/dev/ttyWK3";//Radio 1
    m_pSerialPortWK3->setPortName(comPort);
    m_pSerialPortWK3->setBaudRate(9600);
    m_pSerialPortWK3->setDataBits(QSerialPort::Data8);
    m_pSerialPortWK3->setParity(QSerialPort::NoParity);
    m_pSerialPortWK3->setStopBits(QSerialPort::OneStop);
    if(m_pSerialPortWK3->open(QIODevice::ReadWrite))
    {
        qDebug()<<"Open:"<<comPort;
    }
    else
    {
        qDebug()<<m_pSerialPortWK3->errorString();
    }

 

 

 

void AppWork::OnDataRecvdRadio2Data()
{
    QByteArray data = m_pSerialPortWK3->readAll();
    if(data!="")
    {
        qDebug()<<"ttyWK3-Radio2 Data:"<<data;

    }

}

 

一端通过串口给电台 发数据,另一端也通过电台 收数据,经测试验证发现 QT使用信号和槽方式读一次串口数据耗时约30ms

 

下面验证使用同步方式: