#include "serial.h"
#include "ui_serial.h"
serial::serial(QWidget *parent) :
QWidget(parent),
ui(new Ui::serial)
{
ui->setupUi(this);
ui->textEdit->append(tr("检测到端口列表:"));
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
{
QSerialPort serial;
serial.setPort(info);
if (serial.open(QIODevice::ReadWrite))
{
ui->comboBox->addItem(info.portName());
ui->textEdit->append(info.portName());
ui->textEdit->append(info.description());
ui->textEdit->append(info.manufacturer());
serial.close();
}
}
ui->comboBox_2->setCurrentIndex(3);//默认9600
ui->pushButton->setText(tr("打开串口"));
ui->pushButton_2->setEnabled(false);
}
serial::~serial()
{
delete ui;
}
void serial::my_readuart()
{
QByteArray requestData;
requestData = my_serialport->readAll();
if(requestData!= NULL)
{
ui->textEdit->append(tr(requestData));
}
requestData.clear();
}
void serial::on_pushButton_clicked()
{
if(ui->pushButton->text()==tr("打开串口")){
my_serialport= new QSerialPort();
my_serialport->setPortName(ui->comboBox->currentText());
my_serialport->open(QIODevice::ReadWrite);
my_serialport->setBaudRate(ui->comboBox_2->currentText().toInt());
switch(ui->comboBox_3->currentIndex()){
case 0: my_serialport->setParity(QSerialPort::NoParity);break;
case 1: my_serialport->setParity(QSerialPort::OddParity);break;
case 2: my_serialport->setParity(QSerialPort::EvenParity);break;
default: break;
}
switch(ui->comboBox_4->currentIndex()){
case 0: my_serialport->setDataBits(QSerialPort::Data8);break;
case 1: my_serialport->setDataBits(QSerialPort::Data7);break;
case 2: my_serialport->setDataBits(QSerialPort::Data6);break;
default: break;
}
switch(ui->comboBox_5->currentIndex()){
case 0: my_serialport->setStopBits(QSerialPort::OneStop);break;
case 1: my_serialport->setStopBits(QSerialPort::TwoStop);break;
default: break;
}
my_serialport->setFlowControl(QSerialPort::NoFlowControl);
connect(my_serialport,SIGNAL(readyRead()),this,SLOT(my_readuart()));
ui->comboBox->setEnabled(false);
ui->comboBox_2->setEnabled(false);
ui->comboBox_3->setEnabled(false);
ui->comboBox_4->setEnabled(false);
ui->comboBox_5->setEnabled(false);
ui->label_6->setStyleSheet("background-color:red");
ui->pushButton->setText(tr("关闭串口"));
ui->pushButton_2->setEnabled(true);
}
else {
my_serialport->clear();
my_serialport->deleteLater();
// my_serialport->deleteLater();
ui->comboBox->setEnabled(true);
ui->comboBox_2->setEnabled(true);
ui->comboBox_3->setEnabled(true);
ui->comboBox_4->setEnabled(true);
ui->comboBox_5->setEnabled(true);
// ui->label_6->setStyleSheet("background-color:none");
ui->label_6->setStyleSheet("background-color:rgb(130,130,130)");
ui->pushButton->setText(tr("打开串口"));
ui->pushButton_2->setEnabled(false);
}
}
void serial::on_pushButton_2_clicked()
{
my_serialport->write(ui->lineEdit->text().toLatin1());
}
Qt5串口调试助手源码(基本功能)
5星 · 超过95%的资源 需积分: 45 34 浏览量
2014-12-08
16:45:00
上传
评论 21
收藏 5KB RAR 举报
x264ge
- 粉丝: 51
- 资源: 19
最新资源
- 三菱PLC例程源码Medocsequencegenerator
- 三菱PLC例程源码M1320磨头进出FX1s控制步进电机,有注释
- STRASSEN矩阵乘法算法(改进分治法·C语言)
- 前端.xmind前端.xmind前端.xmind前端.xmind前端.xmind
- 三菱PLC例程源码LOW-E玻璃镀膜线程序(三菱QPLC的)一万步带注释
- 三菱PLC例程源码LCD设备蚀刻机程序
- 三菱PLC例程源码LCD设备蚀刻机
- 全面前端开发指南:从基础到深入
- pvk2pfx 32位 Pvk2Pfx (Pvk2Pfx.exe) 是一种命令行工具,可将 .spc、.cer 和 .pvk 文
- 三菱PLC例程源码JH21-150程序
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
- 6
前往页