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(); } }