-
大小: 1.61MB文件類(lèi)型: .zip金幣: 2下載: 0 次發(fā)布日期: 2023-10-24
- 語(yǔ)言: C/C++
- 標(biāo)簽: serialPort??c++??Qt??
資源簡(jiǎn)介
c++與Qt串口通訊solution示例,解壓后可以直接運(yùn)行(vs2013+Qt5.5.1)

代碼片段和文件信息
#include?“comtest.h“
comTest::comTest(QWidget?*parent)
:?QMainWindow(parent)
{
ui.setupUi(this);
//查找可用串口
foreach(const?QSerialPortInfo?&info?QSerialPortInfo::availablePorts())
{
QSerialPort?serial;
serial.setPort(info);
if?(serial.open(QIODevice::ReadWrite))
{
ui.PortBox->addItem(serial.portName());
serial.close();
}
}
ui.BaudBox->setCurrentIndex(1);//?默認(rèn)波特率?9600
ui.BitBox->setCurrentIndex(3);?//?默認(rèn)數(shù)據(jù)位?8
}
comTest::~comTest()
{
}
void?comTest::ReadData()
{
QByteArray?buf;
buf?=?serial->readAll();
if?(!buf.isEmpty())
{
//ui.AcceptText->insertPlainText(“0x“);
//int?tmp?=?buf.toInt();
//ui.AcceptText->insertPlainText(QString::number(tmp));
ui.AcceptText->insertPlainText(buf);
ui.AcceptText->insertPlainText(“\t“);
}
buf.clear();
}
void?comTest::on_OpenSerialButton_clicked()
{
qDebug()?<text()?< if?(ui.OpenSerialButton->text()?==?QString::fromLocal8Bit(“打開(kāi)串口“))
{
serial?=?new?QSerialPort;
//設(shè)置串口名
serial->setPortName(ui.PortBox->currentText());
//設(shè)置打開(kāi)串口
serial->open(QIODevice::ReadWrite);
//設(shè)置波特率
serial->setBaudRate(QSerialPort::Baud115200);
//設(shè)置數(shù)據(jù)位數(shù)
switch?(ui.BitBox->currentIndex())
{
case?8:
serial->setDataBits(QSerialPort::Data8);
break;
case?5:
serial->setDataBits(QSerialPort::Data5);
break;
case?6:
serial->setDataBits(QSerialPort::Data6);
break;
case?7:
serial->setDataBits(QSerialPort::Data7);
break;
default:
break;
}
//設(shè)置校驗(yàn)位
switch?(ui.ParityBox->currentIndex())
{
case?0:
serial->setParity(QSerialPort::NoParity);//?0校驗(yàn)
break;
case?1:
serial->setParity(QSerialPort::OddParity);//?奇校驗(yàn)
break;
case?2:
serial->setParity(QSerialPort::EvenParity);//偶校驗(yàn)
break;
default:
break;
}
//?設(shè)置停止位
switch?(ui.StopBox->currentIndex())
{
case?1:
serial->setStopBits(QSerialPort::StopBits::OneStop);//?停止位設(shè)置為1
case?2:
serial->setStopBits(QSerialPort::TwoStop);?//?停止位設(shè)置為2
break;
default:
break;
}
serial->setFlowControl(QSerialPort::FlowControl::NoFlowControl);//?設(shè)置為無(wú)流控制:一般有軟件流,硬件流
//關(guān)閉設(shè)置菜單使能
ui.PortBox->setEnabled(false);
ui.BaudBox->setEnabled(false);
ui.BitBox->setEnabled(false);
ui.ParityBox->setEnabled(false);
ui.StopBox->setEnabled(false);
ui.OpenSerialButton->setText(QString::fromLocal8Bit(“關(guān)閉串口“));
//Qobject::connect(serial?&QSerialPort::readyRead?this?&comTest::ReadData);
Qobject::connect(serial?SIGNAL(readyRead())?this?SLOT(ReadData()));
ui.SendButton->setEnabled(true);
}
else?//關(guān)閉串口
{
serial->clear();
serial->close();
serial->deleteLater();
//恢復(fù)設(shè)置使能
ui.PortBox->setEnabled(true);
ui.BaudBox->setEnabled(true);
ui.BitBox->setEnabled(true);
ui.ParityBox->setEnabled(true);
ui.StopBox->setEnabled(true);
ui.OpenSerialButton->setText(QString::fromLocal8Bit(“打開(kāi)串口“));
ui.
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-10-09?16:52??comTest\
?????文件????????1321??2018-10-08?16:50??comTest.sln
?????文件????????3370??2018-10-09?16:52??comTest\comtest.cpp
?????文件?????????584??2018-10-09?14:09??comTest\comtest.h
?????文件??????????67??2018-10-08?16:50??comTest\comtest.qrc
?????文件???????13593??2018-10-09?14:15??comTest\comtest.ui
?????文件???????21852??2018-10-09?13:52??comTest\comTest.vcxproj
?????文件????????2648??2018-10-08?16:51??comTest\comTest.vcxproj.filters
?????文件?????????839??2018-10-09?11:31??comTest\comTest.vcxproj.user
?????目錄???????????0??2018-10-09?13:09??comTest\GeneratedFiles\
?????目錄???????????0??2018-10-09?13:09??comTest\GeneratedFiles\Debug\
?????文件????????4006??2018-10-09?14:11??comTest\GeneratedFiles\Debug\moc_comtest.cpp
?????文件????????1396??2018-10-09?13:09??comTest\GeneratedFiles\qrc_comtest.cpp
?????目錄???????????0??2018-10-08?16:50??comTest\GeneratedFiles\Release\
?????文件???????15892??2018-10-09?14:15??comTest\GeneratedFiles\ui_comtest.h
?????文件?????????173??2018-10-08?16:50??comTest\main.cpp
?????目錄???????????0??2018-10-08?16:50??comTest\Resources\
?????目錄???????????0??2018-10-08?16:51??comTest\x64\
?????目錄???????????0??2019-01-22?11:28??comTest\x64\Debug\
?????文件????????1318??2018-10-09?13:09??comTest\x64\Debug\comTest.Build.CppClean.log
?????文件????????2392??2019-01-22?11:28??comTest\x64\Debug\comTest.log
?????文件??????624195??2019-01-22?11:28??comTest\x64\Debug\comtest.obj
?????目錄???????????0??2019-01-22?11:28??comTest\x64\Debug\comTest.tlog\
?????文件????????4366??2019-01-22?11:28??comTest\x64\Debug\comTest.tlog\cl.command.1.tlog
?????文件???????70094??2019-01-22?11:28??comTest\x64\Debug\comTest.tlog\CL.read.1.tlog
?????文件????????1888??2019-01-22?11:28??comTest\x64\Debug\comTest.tlog\CL.write.1.tlog
?????文件?????????156??2019-01-22?11:28??comTest\x64\Debug\comTest.tlog\comTest.lastbuildstate
?????文件????????1698??2018-10-09?14:15??comTest\x64\Debug\comTest.tlog\custombuild.command.1.tlog
?????文件?????????430??2018-10-09?14:15??comTest\x64\Debug\comTest.tlog\custombuild.read.1.tlog
?????文件?????????674??2018-10-09?14:15??comTest\x64\Debug\comTest.tlog\custombuild.write.1.tlog
?????文件????????2072??2019-01-22?11:28??comTest\x64\Debug\comTest.tlog\li
............此處省略11個(gè)文件信息
評(píng)論
共有 條評(píng)論