找回密码
 立即注册
收起左侧

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

5
回复
7144
查看
打印 上一主题 下一主题
[复制链接]
累计签到:1 天
连续签到:1 天
楼主#
来源: 2019-9-19 13:50:35 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1Qter豆
最近新下了QT5.13.1。新编写了一个串口程序。主要问题:接收不到数据,而发送数据也只能发一次。
每次打开串口只能发一次数据,之后就再也发不出去。需要关闭串口再打开,才能再发送一次数据。接收数据也完全没有反应。检查了也没发现什么错误。接收使用connect(serial, &QSerialPort::readyRead, this, &MainWindow::Read_Data);使用网上别人的例程也一样。只有QT提供的前两个同步的的例程可以正常使用串口。最后一个异步的例程也是一样的效果只能发一次,接收不到数据。困惑了两天了,难搞哦。查到的使用控制管脚状态的方法也没用if(serial.open(QIODevice::ReadWrite)){

serial.setDataTerminalReady(true);}


收藏
收藏0
分享
分享
分享
淘帖0
支持
支持0
反对
反对0
回复

使用道具 举报

累计签到:118 天
连续签到:2 天
沙发#
2019-9-20 09:49:28 只看该作者
贴点代码出来吧,我们凭空想象也定位不了问题

点评

+1  发表于 2019-9-27 17:25
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
板凳#
2019-9-20 12:53:38 只看该作者
版本问题,也有可能是配置问题。重新下载Qt 5.8的版本后,测试正常使用了。串口收发都正常了。
回复

使用道具 举报

累计签到:147 天
连续签到:1 天
地板#
2019-9-22 22:57:06 只看该作者
我也是用这个版本的,目前做的串口能够读取到数据。
  1. QSerialPort *Port;
  2. connect(Port,SIGNAL(readyRead()),this,SLOT(ReceiveData()));
复制代码

回复

使用道具 举报

累计签到:7 天
连续签到:1 天
5#
2019-10-18 13:37:36 只看该作者
正好要来论坛反映这个问题,使用MinGW 5.13.1 在 win10 系统下 就会出现 串口可以发送 还是收不到数据的情况;
MinGW 5.9.1 就没问题,但是MinGW 5.13.1 在 WIN7下没有这个问题。
目前没有找到好的方法,建议使用 低版本的MinGW 编译
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了