zjzhuwenbin 发表于 2019-9-19 13:50:35

QT5中QSerialPort使用readyRead无法返回数据

最近新下了QT5.13.1。新编写了一个串口程序。主要问题:接收不到数据,而发送数据也只能发一次。
每次打开串口只能发一次数据,之后就再也发不出去。需要关闭串口再打开,才能再发送一次数据。接收数据也完全没有反应。检查了也没发现什么错误。接收使用connect(serial, &QSerialPort::readyRead, this, &MainWindow::Read_Data);使用网上别人的例程也一样。只有QT提供的前两个同步的的例程可以正常使用串口。最后一个异步的例程也是一样的效果只能发一次,接收不到数据。困惑了两天了,难搞哦。查到的使用控制管脚状态的方法也没用if(serial.open(QIODevice::ReadWrite)){serial.setDataTerminalReady(true);}

zhuxianfei 发表于 2019-9-20 09:49:28

贴点代码出来吧,我们凭空想象也定位不了问题

zjzhuwenbin 发表于 2019-9-20 12:53:38

版本问题,也有可能是配置问题。重新下载Qt 5.8的版本后,测试正常使用了。串口收发都正常了。

怦然心动如往昔 发表于 2019-9-22 22:57:06

我也是用这个版本的,目前做的串口能够读取到数据。
QSerialPort *Port;
connect(Port,SIGNAL(readyRead()),this,SLOT(ReceiveData()));

643166069 发表于 2019-10-18 13:37:36

正好要来论坛反映这个问题,使用MinGW 5.13.1 在 win10 系统下 就会出现 串口可以发送 还是收不到数据的情况;
MinGW 5.9.1 就没问题,但是MinGW 5.13.1 在 WIN7下没有这个问题。
目前没有找到好的方法,建议使用 低版本的MinGW 编译
页: [1]
查看完整版本: QT5中QSerialPort使用readyRead无法返回数据