|
在Qt上制作一個(gè)串口通信的界面,可以與手機(jī)通信,也可以通過藍(lán)牙與單片機(jī)通信。
源程序如下:
- #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);
- }
復(fù)制代碼
所有資料51hei提供下載:
serial.zip
(7.65 KB, 下載次數(shù): 63)
2017-11-6 17:38 上傳
點(diǎn)擊文件名下載附件
|
|