查看完整版本: [-- 串口参数false,最终导致串口打开失败,错误码为PermissionError,求大神打救。 --]

QTCN开发网 -> Qt基础编程 -> 串口参数false,最终导致串口打开失败,错误码为PermissionError,求大神打救。 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

学者 2017-04-10 17:45

串口参数false,最终导致串口打开失败,错误码为PermissionError,求大神打救。

UartDataHandle::UartDataHandle(const QString &name,QObject *parent)
    : QObject(parent)
{

   qDebug() << name;
    //设置串口参数
    mySerial = new QSerialPort(name);
    //判断串口是否已经打开d
    if( !mySerial->isOpen() )
    {
        //判断串口是否成功打开d
        if( mySerial->open(QIODevice::ReadWrite)
             && mySerial->setBaudRate(QSerialPort::Baud115200)
             && mySerial->setDataBits(QSerialPort::Data8)
             && mySerial->setParity(QSerialPort::NoParity)
             && mySerial->setStopBits(QSerialPort::OneStop)
             && mySerial->setFlowControl(QSerialPort::NoFlowControl) )
        {
            qDebug() << "open serial success!!!";
            if(mySerial->isReadable())
            {
                qDebug() << "can read serial success!!!";
               QObject::connect(mySerial,SIGNAL(readyRead()),this,SLOT(HandleDataFromSerial()));
            }
        }else
        {
            qDebug() << "name :" << mySerial->portName()
                     << "\nbaudrate :" << mySerial->baudRate()
                     << "\ndatabits :" << mySerial->dataBits()
                     << "\nparity :" << mySerial->parity()
                     << "\ntopbis :" << mySerial->stopBits()
                     << "\nflowcontrol :" << mySerial->flowControl();
            qDebug() << "error code :" << QString("%1").arg(mySerial->error())
                     << "\nerror reason :" << mySerial->errorString() ;
        }
    }else
    {
         qDebug() << "the serial was open!!!";
         QObject::connect(mySerial,SIGNAL(readyRead()),this,SLOT(HandleDataFromSerial()));
    }

    //crc16 init数据检验
    Crc16Init();
}



学者 2017-04-12 10:35
传入串口绝对路径与名称:"/dev/ttyAMA1"
打印打开串口失败时,打印一下内容
name : "ttyAMA1"
baudrate : 0
databits : -1
parity : -1
topbis : -1
flowcontrol : -1
error code : "2"
error reason : "No such file or directory"

现在问题是:为什么名称传进来时是绝对路径,经mySerial = new QSerialPort(name);打印出来的名称却只有"ttyAMA1",是不是因为这个原因导致找不到打开的目标文件呢?

跪求大神救我这菜鸟


查看完整版本: [-- 串口参数false,最终导致串口打开失败,错误码为PermissionError,求大神打救。 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled