• 2994阅读
  • 1回复

QT Android操作串口问题 [复制链接]

上一主题 下一主题
离线sinoward
 

只看楼主 倒序阅读 楼主  发表于: 2018-03-28
使用QSerialPort操作串口时,老是打开串口失败,提示Permission error while creating lock file。
应该是串口操作权限问题,有没有同学碰到过,解决了该问题。
共享一下。
离线15145093145

只看该作者 1楼 发表于: 2018-03-29
用linux api作,我现在项目就是qt for android   serialport

bool ComMgr::open()
{
#ifdef Q_OS_ANDROID
    if(m_fd != -1)
        ::close(m_fd);

    char* com = g_sysVar->m_strCom.toLatin1().data();
    m_fd = ::open((char*)com, O_RDWR|O_NONBLOCK);
    if (m_fd == -1)
    {
        AddInfo("COM:  open is failed<1>");
        return false;
    }

    termios serialAttr;
    memset(&serialAttr, 0, sizeof serialAttr);
    serialAttr.c_iflag = IGNPAR;
    serialAttr.c_cflag= B115200| HUPCL| CS8|CREAD|CLOCAL;
    serialAttr.c_cc[VMIN] = 1;

    if (tcsetattr(m_fd, TCSANOW, &serialAttr) != 0) {
        AddInfo("COM:  open is failed<2>");
        return false;
    }

    m_notifier = new QSocketNotifier(m_fd, QSocketNotifier::Read, this);
    QObject::connect (m_notifier, SIGNAL(activated(int)), this, SLOT(slt_notifyNewData()));
#endif
    return true;
}
快速回复
限100 字节
 
上一个 下一个