Qt串口通信简单编程步骤(QSerialPort)

Qt有自带的串口通信类QSerialPort:
提供访问串口的功能。您可以使用QSeralPortinfo助手类获得关于可用串行端口的信息,该帮助程序允许枚举系统中的所有端口。有助于获得您想要使用的串行端口的正确名称。您可以将助手类的对象作为参数传递给setPort()或setPortName()方法,以分配所需的串行设备。
在设置端口之后,您可以使用open()方法以只读(r/o)、只写(w/o)或读写(r/w)模式打开它。注意:串行端口总是以独占访问的方式打开(也就是说,没有其他进程或线程可以访问已经打开的串行端口)使用close()方法关闭端口并取消I/0操作。

程序编写步骤:

1.环境配置

在工程文件中添加

QT += serialport

在头文件中添加

#include         //Qt串口功能接口类
#include  //提供设备现有串行端口的信息

2.获取设备现有串行端口

//检测系统现有串口,显示到comboBox控件   
foreach (const QSerialPortInfo &qspinfo, QSerialPortInfo::availablePorts())    
{        
	ui->portComboBox->addItem(qspinfo.portName());    
}

3.设置串口参数并打开串口

先声明并初始化一个串口类

QSerialPotr  myPort;
myPort = new QSerialPort;

设置串口配置并打开串口

myPort->setPortName(PortName);    
myPort->setBaudRate(QSerialPort::Baud19200); //设置波特率
myPort->setParity(QSerialPort::NoParity);    //设置校验位    
myPort->setDataBits(QSerialPort::Data8);     //设置数据位    
myPort->setStopBits(QSerialPort::OneStop);   //设置停止位    
myPort->open(QIODevice::ReadWrite);    
if(myPort->isOpen())        
	qDebug()<<"串口打开成功";

4.发送与接收数据

发送数据

QString str = "需要发送的字符数据";
QByteArray array = str.toLocal8Bit();
myPort->write(array);

接收数据

//先建立信号槽
connect(this,SIGNAL(readyRead()),this,receiveDate()));
//接收函数
void MainWindow::receiveDate()
{
	QString str = myPort->readAll();
	//然后把接收到的信息自定义处理就ok了
}

关闭串口

myPort->close();

如有不到之处,请联系我指正,诚恳求教!

你可能感兴趣的:(Qt练习,qt5,c++,串口通信)