• 3739阅读
  • 1回复

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

上一主题 下一主题
离线学者
 

只看楼主 倒序阅读 楼主  发表于: 2017-04-10
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();
}


离线学者

只看该作者 1楼 发表于: 2017-04-12
传入串口绝对路径与名称:"/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",是不是因为这个原因导致找不到打开的目标文件呢?

跪求大神救我这菜鸟
快速回复
限100 字节
 
上一个 下一个