查看完整版本: [-- 关于Qt串口类的发送功能疑问 --]

QTCN开发网 -> Qt嵌入式开发 -> 关于Qt串口类的发送功能疑问 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

编程菜鸟 2018-07-07 14:01

关于Qt串口类的发送功能疑问

  1. int serialCommunication::sendSerialData(char *buffer, int length )
    {
        m_SerialPort->clear(QSerialPort::Input);
        m_SerialPort->clear(QSerialPort::Output);
        qDebug()<<"ready to send Data"<<endl;
        return m_SerialPort->write(buffer, length);
    }
以上是我的发送代码,我发现在一个函数A中多次调用sendSerialData发送数据,接收方实际只会收到最后一条数据。
  1. void A()
    {
        sendSerialData(buf1, 10);   //打印返回值,为10
        sendSerialData(buf2, 10);   //打印返回值,为10
        sendSerialData(buf3, 10);   //打印返回值,为10,接收方只收到此条消息
    }
我猜想是不是上一条数据没来得及发送,就被覆盖了?希望有人能解答一下




编程菜鸟 2018-07-07 14:48
是的没错,把clear去掉就能正常发送了

xllwanlxy 2018-07-09 21:35
为什么要clear??

yanwuyue 2018-07-10 08:45
write是异步的,连着调用,导致还没发送就clear了


查看完整版本: [-- 关于Qt串口类的发送功能疑问 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled