c++ - QSerialPort 错误 : Device Not Open

标签 c++ linux qt

我有一个试图在 Linux 上构建的 Qt 应用程序。我有一个 FTDI 设备,我想使用我制作的 Qt 应用程序与之交互,但是我不断收到设备无法打开的错误消息。我已经检查了设备是否连接到 PC 并且它已连接,因为我可以从设备中检索序列号、设备描述等。我也在 Windows 上尝试过,它没有问题,只有 Linux。

顺便说一句,这是我的代码:

foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
    {
        if(info.description() != "")
        {
            QSerialPort *serial = new QSerialPort(info);
            serial -> setPortName(info.portName());

            if (!serial->open(QIODevice::ReadWrite)) {
                    std::cout << "Fail to open device" << std::endl;
                }

            serial -> setDataBits(QSerialPort::Data8);
            serial -> setStopBits(QSerialPort::OneStop);
            serial -> setParity(QSerialPort::NoParity);

        }
    }

最佳答案

将自己添加到拨出组:

sudo usermod -a -G dialout YOURUSERNAME

sudo adduser YOURUSERNAME 拨出

然后注销重新登录生效。

关于c++ - QSerialPort 错误 : Device Not Open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38255808/

相关文章:

c++ - 在 vector 中使用现有对象,如果 C++ 中不存在则创建新对象

c++ - 在它所属的模板类中使用内部类

c++ - initializeDb 中的 QPainter#drawText 段错误

c++ - 使用 qt 在 SQLITE 数据库中插入多行

c++ - 如何读取nm命令: What does nm options -T and -U (undefined) mean?

c++ - 所有双向迭代器的通用类类型,c++

linux - 执行一个正在运行的进程

linux - 在 Linux 中对多个文件执行命令

linux - 如何在 awk 中传递变量

c++ - Qt编程如何将十进制转十六进制?