• 2344阅读
  • 3回复

[提问]关于Qt串口类的发送功能疑问 [复制链接]

上一主题 下一主题
离线编程菜鸟
 

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



离线编程菜鸟

只看该作者 1楼 发表于: 2018-07-07
是的没错,把clear去掉就能正常发送了
离线xllwanlxy

只看该作者 2楼 发表于: 2018-07-09
为什么要clear??
离线yanwuyue

只看该作者 3楼 发表于: 2018-07-10
write是异步的,连着调用,导致还没发送就clear了
快速回复
限100 字节
 
上一个 下一个