在Qt上制作一个串口通信的界面,可以与手机通信,也可以通过蓝牙与单片机通信。
源程序如下:
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include <QtCore/QDebug>
- #include <QtSerialPort/QSerialPort>
- #include <QtSerialPort/QSerialPortInfo>
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- //枚举所有串口
- foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
- {
- qDebug() << "Name : " << info.portName();
- qDebug() << "Description : " << info.description();
- qDebug() << "Manufacturer: " << info.manufacturer();
- // Example use QSerialPort
- QSerialPort serial;
- serial.setPort(info);
- if (serial.open(QIODevice::ReadWrite))
- {
- ui->comboBox->addItem(info.portName());
- serial.close();
- }
- }
- my_serialport= new QSerialPort;
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::on_cmOpen_clicked()
- {
- my_serialport->setPortName(ui->comboBox->currentText());
- my_serialport->open(QIODevice::ReadWrite);
- my_serialport->setBaudRate(ui->lineEdit->text().toInt());
- my_serialport->setDataBits(QSerialPort::Data8);
- my_serialport->setParity(QSerialPort::NoParity);
- my_serialport->setStopBits(QSerialPort::OneStop);
- my_serialport->setFlowControl(QSerialPort::NoFlowControl);
- connect(my_serialport,SIGNAL(readyRead()),this,SLOT(readCom()));
- }
- void MainWindow::on_pushButton_2_clicked()
- {
- my_serialport->close();
- }
- void MainWindow::on_pushButton_clicked()
- {
- my_serialport->write(ui->lineEdit_2->text().toLatin1());
- }
- void MainWindow::readCom()
- {
- QByteArray temp = my_serialport->readAll();
- ui->textBrowser->append(temp);
- }
复制代码
所有资料51hei提供下载:
serial.zip
(7.65 KB, 下载次数: 63)
|