Qt5串口打开问题

songhuirong1 songhuirong1 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用Qt5.3.0在centos上做串口开发,发现一个很奇怪的问题,就是当同时打开同一个串口时,如果第一次打开成功,第二次再打开这个串口时QSerialport的open函数就会被阻塞,在windows不会阻塞,不知道怎么回事儿?

QSerialPort sp1;
QSerialPort sp2;
QStringList ports;
QList<QSerialPortInfo> portinfo = QSerialPortInfo::availablePorts();

foreach(QSerialPortInfo info, portinfo)
ports << info.portName();

if(!ports.isEmpty())
{
sp1.setPortName(ports[0]);
sp1.open(QIODevice::ReadWrite);
sp2.setPortName(ports[0]);
sp2.open(QIODevice::ReadWrite);
}

sp1.open(QIODevice::ReadWrite);可以执行,但是执行到sp2.open(QIODevice::ReadWrite);时,代码就阻塞住了,有没有办法解决呀。
...全文

相关推荐

qt实现串口通信

在Qt5中,我们可以使用QSerialPort模块来操作串口,这个模块提供了打开、关闭串口、设置波特率、数据位、停止位、校验位等功能。

WAmani

Qt5无法获取串口数据

选择正确的数据读取方式:Qt提供了两种数据读取方式,一种是阻塞方式,另一种是非阻塞方式。Qt5提供了方便易用的串口通信功能,但在使用过程中可能会遇到无法获取到串口数据的问题。本文介绍了可能的原因和解决方法,包括检查串口配置、打开串口、选择正确的数据读取方式以及处理接收到的数据。串口配置错误:在使用Qt5进行串口通信时,需要正确地配置串口参数,包括串口号、波特率、数据位、停止位和校验位等。数据读取方式错误:Qt5提供了多种方式来读取串口数据,包括阻塞和非阻塞方式。如果串口未打开,就无法接收到串口数据。

ByteBuster

QT5实现串口通信技术项目

在嵌入式系统和计算机系统中,串行通信是一种常用的、低层次的硬件通信方式,通过一条线即可完成数据的发送与接收。QT5通过其模块中的QSerialPort类简化了串口通信的复杂性,使得开发者能够更加专注于应用层的逻辑实现。是 Qt 框架中用于串口通信的类,它提供了一套接口用于管理串口设备的配置、打开、读写数据以及关闭等操作。它封装了底层操作系统的串口通信机制,并提供了跨平台的 API。主要功能包括但不限于以下几个方面:打开和关闭串口。配置串口参数,如波特率、数据位、停止位、校验位等。

KY主创

qt 串口通讯(发送和接收都有)

此外,如果你的程序需要在多个线程中同时访问串口,需要注意同步问题,可以使用Qt的信号和槽机制来实现。

「已注销」

QT5实现串口

**QT5串口编程简介**QT5是一个强大的跨平台应用程序开发框架,支持Windows、Linux、Mac OS、Android和iOS等多个操作系统。

weixin_42562638
评论 9
收藏 已收藏
分享
返回顶部
songhuirong1
Qt 21,503 成员 26,693 内容