/******************************************************widget.h************************************************/
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QTimer>
namespace Ui {
class
Widget;
}
class Widget : public
QWidget{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void on_cmopen_clicked();
void on_send_clicked();
void updateAA();
private:
Ui::Widget *ui;
QSerialPort *my_serialport;
QByteArray requestData;
QTimer *timer;
};
#endif // WIDGET_H
/*********************************************************widget.cpp***************************************************************/
#include "widget.h"
#include "ui_widget.h"
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QDebug>
#include <QTimer>
#include <QIODevice>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
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::ReadOnly))
{
ui->comboBox->addItem(info.portName());
serial.close();
}
}
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_cmopen_clicked()
{
my_serialport = new QSerialPort();
qDebug()<<ui->comboBox->currentText();
my_serialport->setPortName(ui->comboBox->currentText());
my_serialport->open(QIODevice::ReadWrite);
qDebug()<<ui->lineEdit->text().toInt();
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);
timer = new
QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(updateAA()));
timer->start(1000);
}
void Widget::on_send_clicked()
{
QByteArray TxData = "aaaa";
my_serialport->write(TxData);
}
void Widget::updateAA()
{
requestData = my_serialport->readAll();
if(requestData!=NULL)
{
ui->textEdit->append(requestData);
}
requestData.clear();
}
代码是不是哪里写错了?求解