#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//获取电脑支持的串口
QList<QSerialPortInfo> comlist =
QSerialPortInfo::availablePorts();
//将串口名称添加到UI的控件中
foreach (const QSerialPortInfo &info, comlist) {
qDebug()<<info.portName();//输出调试信息
ui->comboBox_com->addItem(info.portName());
}
myCom=nullptr;
}
MainWindow::~MainWindow()
{
delete ui;
}
#include <QMessageBox>
void MainWindow::on_pushButton_open_clicked()
{
//判断串口是否已经打开了
if(myCom!=nullptr&&myCom->isOpen()){
QMessageBox::warning(this,"警告","串口已经打开!");
return;
}
//创建串口类的对象
myCom = new QSerialPort(ui->comboBox_com->currentText(),this);
//设置参数
//1.设置波特率
myCom->setBaudRate(ui->comboBox_bitrate->currentText().toInt());
//2.设置停止位
//3.设置奇偶校验
//连接信号槽
connect(myCom,&QSerialPort::readyRead,
this,&MainWindow::recvData);
//打开串口
if(!myCom->open(QIODevice::ReadWrite)){
QMessageBox::warning(this,"警告","串口打开失败!");
return;
}
qDebug()<<"open ok!";
}
void MainWindow::recvData()
{
//从串口接口读取数据
QString msg = myCom->readAll();
//把数据显示到UI控件
ui->textBrowser->append(msg);
}
void MainWindow::on_pushButton_send_clicked()
{
//先判断串口是否已经打开了
if(myCom==nullptr || !myCom->isOpen()){
qDebug()<<"com is not open!";
return;
}
//获取UI上的要发送的数据
QByteArray msg = ui->textEdit->toPlainText().toUtf8();
//发送数据
myCom->write(msg);
}
Qt5串口助手程序(使用QSerialPort类)
需积分: 39 30 浏览量
2020-11-20
22:36:46
上传
评论
收藏 5KB RAR 举报
强子老师
- 粉丝: 4
- 资源: 11