qt串口调试助手
来源:互联网 发布:比特币软件 编辑:程序博客网 时间:2024/04/28 00:29
#-------------------------------------------------## Project created by QtCreator 2017-09-01T13:29:03##-------------------------------------------------QT += core gui serialportgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = uartassistantTEMPLATE = appSOURCES += main.cpp\ dialog.cppHEADERS += dialog.hFORMS += dialog.ui
==============================================================================================
#ifndef DIALOG_H#define DIALOG_H#include <QDialog>#include <QSerialPortInfo>#include <QSerialPort>#include <QDebug>#include <QList>namespace Ui {class Dialog;}class Dialog : public QDialog{ Q_OBJECTpublic: explicit Dialog(QWidget *parent = 0); ~Dialog();public: bool getSerialPortConfig(void);private slots:// void on_CBoxSerailPort_currentIndexChanged(const QString &arg1); void on_BtnOpen_clicked(); void on_BtnSend_clicked(); void on_SerialPort_readyRead();private: Ui::Dialog *ui; QSerialPort mSerialPort; bool mIsOpen; QString mPortName; QString mBaudRate; QString mParity; QString mDataBits; QString mStopBits;};#endif // DIALOG_H
======================================================================================#include "dialog.h"#include "ui_dialog.h"Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog){ ui->setupUi(this); mIsOpen = false; //智能识别当前系统的有效串口号 QList<QSerialPortInfo> serialPortInfo = QSerialPortInfo::availablePorts(); int count = serialPortInfo.count(); for (int i=0; i<count; i++) { ui->CBoxSerailPort->addItem(serialPortInfo.at(i).portName()); }// ui->CBoxSerailPort->addItem("COM4");// ui->CBoxSerailPort->addItem("COM5");// ui->CBoxSerailPort->addItem("COM6");// ui->CBoxSerailPort->addItem("COM7");// ui->CBoxSerailPort->addItem("COM8");// ui->CBoxSerailPort->addItem("COM9");/* mSerialPort.setPortName("COM1"); mSerialPort.setBaudRate(QSerialPort::Baud115200); mSerialPort.setParity(QSerialPort::NoParity); mSerialPort.setDataBits(QSerialPort::Data8); mSerialPort.setStopBits(QSerialPort::OneStop); mSerialPort.open(QSerialPort::ReadWrite); if (mSerialPort.isOpen()) { qDebug() << "串口打开成功"; mSerialPort.write("hello world!"); }*/ connect(&mSerialPort, SIGNAL(readyRead()), this, SLOT(on_SerialPort_readyRead()));}Dialog::~Dialog(){ delete ui;}bool Dialog::getSerialPortConfig(){ //获取串口配置 mPortName = ui->CBoxSerailPort->currentText(); mBaudRate = ui->CboxBaudRate->currentText(); mParity = ui->CboxParity->currentText(); mDataBits = ui->CboxDataBits->currentText(); mStopBits = ui->CboxStopBits->currentText(); //设置串口配置 //端口号 mSerialPort.setPortName(mPortName); //波特率 if ("9600" == mBaudRate) { mSerialPort.setBaudRate(QSerialPort::Baud9600); } else if ("19200" == mBaudRate) { mSerialPort.setBaudRate(QSerialPort::Baud19200); } else { mSerialPort.setBaudRate(QSerialPort::Baud115200); } //校验位 if ("NONE" == mParity) { mSerialPort.setParity(QSerialPort::NoParity); } else if ("ODD" == mParity) { mSerialPort.setParity(QSerialPort::OddParity); } else { mSerialPort.setParity(QSerialPort::EvenParity); } //数据位 if ("5" == mDataBits) { mSerialPort.setDataBits(QSerialPort::Data5); } else if ("6" == mDataBits) { mSerialPort.setDataBits(QSerialPort::Data6); } else if ("7" == mDataBits) { mSerialPort.setDataBits(QSerialPort::Data7); } else { mSerialPort.setDataBits(QSerialPort::Data8); } //停止位 if ("1.5" == mStopBits) { mSerialPort.setStopBits(QSerialPort::OneAndHalfStop); } if ("2" == mStopBits) { mSerialPort.setStopBits(QSerialPort::TwoStop); } else { mSerialPort.setStopBits(QSerialPort::OneStop); } return mSerialPort.open(QSerialPort::ReadWrite);}/*void Dialog::on_CBoxSerailPort_currentIndexChanged(const QString &arg1){ ui->LbSerialPort->setText(arg1);}*/void Dialog::on_BtnOpen_clicked(){ if (mIsOpen) { //当前串口助手已经打开了一个串口这时要执行关闭动作 mSerialPort.close(); ui->BtnOpen->setText("打开"); mIsOpen = false; ui->CBoxSerailPort->setEnabled(true); ui->CboxBaudRate->setEnabled(true); ui->CboxParity->setEnabled(true); ui->CboxDataBits->setEnabled(true); ui->CboxStopBits->setEnabled(true); } else { //当前串口助手没有打开串口,要执行打开动作 if (getSerialPortConfig()) { mIsOpen = true; ui->BtnOpen->setText("关闭"); qDebug() << "成功打开串口" << mPortName; ui->CBoxSerailPort->setEnabled(false); ui->CboxBaudRate->setEnabled(false); ui->CboxParity->setEnabled(false); ui->CboxDataBits->setEnabled(false); ui->CboxStopBits->setEnabled(false); }// else// {// mIsOpen = false;// } }}void Dialog::on_BtnSend_clicked(){ if (mIsOpen) { mSerialPort.write(ui->TeditSend->toPlainText().toStdString().c_str()); }}void Dialog::on_SerialPort_readyRead(){ if (mIsOpen) { QByteArray recvData = mSerialPort.readAll(); ui->TeditRecv->append(QString(recvData)); }}============================================================================
#include "dialog.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); Dialog w; w.show(); return a.exec();}
阅读全文
0 0
- qt串口调试助手
- Qt写的串口调试助手
- Qt简单串口调试助手源码
- Qt从零开始制作串口调试助手(V1.0)源代码-Creator_Ly
- Qt串口助手开发
- 串口调试助手源程序
- 串口调试助手源程序
- 串口调试助手源程序
- 串口调试助手源程序
- 串口调试助手使用说明
- 串口调试助手源程序
- WINCE 串口调试助手
- 几个串口调试助手
- 串口调试助手
- C#串口调试助手
- win32串口调试助手
- ubuntu--串口调试助手
- C#串口调试助手
- 使用 vue-cli 搭建项目
- Linux 动态库与静态库制作
- python:导入模块的三种不同方法,类似于import
- 开辟动态空间
- 学识尚浅,闭关修炼
- qt串口调试助手
- Yii2单独验证图形验证码
- Javascript中call和apply的区别与详解
- 冒泡事件
- jdk1.5 jdk1.6 jdk1.7 jdk1.8 特性
- CodeForces-77E(计算几何+笛卡尔定理)
- solr最小集群的搭建
- vue vue-cli请求后台服务地址要注意点
- obs之libx264编码