1,316
社区成员
发帖
与我相关
我的任务
分享
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
foreach(const QSerialPortInfo &info,QSerialPortInfo::availablePorts() )
{
qDebug()<<"Name :"<<info.portName()<<endl;
qDebug()<<"Description :"<<info.description()<<endl;
qDebug()<<"Manufacturer:"<<info.manufacturer()<<endl;
QSerialPort serial;
serial.setPort(info);
if(serial.open(QIODevice::ReadWrite))
{
ui->comboBox->addItem(info.portName());
serial.close();
}
}
myserialport=new QSerialPort;
connect(ui->pushButton_op,SIGNAL(clicked()),this,SLOT(btn_op()));
connect(ui->pushButton_cls,SIGNAL(clicked()),this,SLOT(btn_cls()));
connect(ui->pushButton_send,SIGNAL(clicked()),this,SLOT(btn_send()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::btn_op()
{
myserialport->setPortName(ui->comboBox->currentText());
myserialport->open(QIODevice::ReadWrite);
myserialport->setBaudRate(ui->lineEdit->text().toInt());
myserialport->setDataBits(QSerialPort::Data8);
myserialport->setParity(QSerialPort::NoParity);
myserialport->setStopBits(QSerialPort::OneStop);
myserialport->setFlowControl(QSerialPort::NoFlowControl);
connect(myserialport,SIGNAL(readyRead()),this,SLOT(readCom()));
}
void MainWindow::btn_cls()
{
myserialport->close();
}
void MainWindow::readCom()
{
QByteArray data=myserialport->readAll();
ui->textBrowser->append(data);
}
void MainWindow::btn_send()
{
myserialport->write(ui->lineEdit_send->text().toLatin1());
}