QT使用虚拟串口长时间通信时突然出现收不到串口数据
作者在使用QT开发上位机软件与STM32单片机进行串口通信时,发现上位机软件串口打开后长时间发收数据,偶尔突然出现上位机一直发送数据到单片机,但QSerialPort::readyRead信号不发射,在发送后等待时间到达后,直接使用QSerialPort::readAll()读出来数据也是空的。解决办法:到达设定等待时间后没获取到串口数据,调用QSerialPort::close()和QSeria
·
作者在使用QT开发上位机软件与STM32单片机进行串口通信时,发现上位机软件串口打开后长时间发收数据,偶尔突然出现上位机一直发送数据到单片机,但QSerialPort::readyRead信号不发射,在发送后等待时间到达后,直接使用QSerialPort::readAll()读出来数据也是空的。使用的电脑系统是Win11,串口驱动试过系统自带USB串行设备驱动和ST官网下载的VCP串口驱动,问题依然存在。
问题现象重点描述:在发送数据后,等待自己设定的一段时间后仍然收不到数据,说明串口中没有数据可读。再继续下发,也是同样的现象,串口中一直没有数据可读。
解决办法:到达设定等待时间后没获取到串口数据,调用QSerialPort::close()和QSerialPort::open()重新打开串口,后面再继续下发就可正常收到串口回复数据。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)