qt 串口

if(ui->connectSerialBtn->text() == tr("打开串口"))
    {
        //ui->showSerialInfo->setEnabled(false);
        ui->connectSerialBtn->setText(tr("关闭串口"));
        myPort->setPortName(ui->serialNameComboBox->currentText());
        myPort->setBaudRate(ui->baudRateComboBox->currentText().toInt());
        myPort->setDataBits(QSerialPort::Data8);
        myPort->setParity(QSerialPort::NoParity);
        myPort->setStopBits(QSerialPort::OneStop);
        myPort->setFlowControl(QSerialPort::NoFlowControl);
        if(myPort->open(QIODevice::ReadWrite))
        {
            connect(myPort,SIGNAL(readyRead()),this,SLOT(readSerial()));
        }
        else
        {
           QMessageBox::information(this,tr("串口配置"),tr("打开串口失败!"));
           //ui->showSerialInfo->setEnabled(true);
           ui->connectSerialBtn->setText("打开串口");
        }
     }
    else
    {
        //关闭串口
        myPort->close();
        ui->connectSerialBtn->setText("打开串口");
        //ui->showSerialInfo->setEnabled(true);
    }

显示串口信息

 //显示串口信息 选择正确串口名
    ui->serialMsgEdit->clear();
    foreach (const QSerialPortInfo &info , QSerialPortInfo::availablePorts()) {
        QSerialPort serial;
        serial.setPort(info);
        if(serial.open(QIODevice::ReadWrite))
        {
            ui->serialNameComboBox->addItem(info.portName());
            int count = ui->serialNameComboBox->count();
            for(int i = 0;i<count;i++)
            {
                QString str1 = ui->serialNameComboBox->itemText(i);
                for(int j = i+1;j<count;j++)
                {
                    QString str2 = ui->serialNameComboBox->itemText(j);
                    if(str1 == str2)
                    {
                        ui->serialNameComboBox->removeItem(j);
                        count--;
                        j--;
                    }
                }
            }
            ui->serialMsgEdit->append(tr("检测到端口列表:"));
            ui->serialMsgEdit->append(info.portName());
            ui->serialMsgEdit->append(info.description());
            ui->serialMsgEdit->append(info.manufacturer());
            serial.close();
        }
    }

 

posted @ 2017-04-17 22:23  随风666  阅读(262)  评论(0编辑  收藏  举报