我有一个尝试在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 dialout
然后注销并再次登录以生效。

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

10-09 04:56