Qt5SerialPort下面代码的关键两个地方-创新互联
Qt5 SerialPort下面代码的关键两个地方,就是读和写两个位置,因为串口是不稳定的,所以必须以这种方式来收发。
创新互联-专业网站定制、快速模板网站建设、高性价比盐津网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式盐津网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖盐津地区。费用合理售后完善,十余年实体公司更值得信赖。[cpp] view plain
#include "stdafx.h"
#include "serialporttesttool.h"
SerialPortTestTool::SerialPortTestTool(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
sp = new QSerialPort("com4",this);
if (sp->open(QIODevice::ReadWrite))
{
sp->setBaudRate(QSerialPort::Baud115200,QSerialPort::AllDirections);
sp->setDataBits(QSerialPort::Data8);
sp->setStopBits(QSerialPort::OneStop);
sp->setParity(QSerialPort::NoParity);
sp->setFlowControl(QSerialPort::NoFlowControl);
//connect(sp,SIGNAL(readyRead()),this,SLOT(serialRead()));
}
}
SerialPortTestTool::~SerialPortTestTool()
{
sp->close();
delete sp;
}
void SerialPortTestTool::on_lineEdit_returnPressed()
{
QByteArray command = ui.lineEdit->text().trimmed().toLocal8Bit() + "\r\n";
sp->write(command,command.length());
ui.lineEdit->setText("");
if (sp->waitForBytesWritten(2000))
{
ui.textEdit->append("ok");
}
else
{
ui.textEdit->append("failed");
}
}
void SerialPortTestTool::serialRead()
{
static QByteArray allData;
QByteArray dataTemp;
while (!sp->atEnd())
{
dataTemp = sp->readLine();
ui.textEdit->append(QString::fromLatin1(dataTemp));
}
}
void SerialPortTestTool::on_pushButton_clicked()
{
QByteArray temp = sp->readAll();
while (sp->waitForReadyRead(10))
{
temp += sp->readAll();
}
ui.textEdit->append(QString::fromLatin1(temp));
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:Qt5SerialPort下面代码的关键两个地方-创新互联
文章转载:http://ybzwz.com/article/cocpjs.html