QT串口收发数据

QT5是自带QSerialPort这个类的,使用时需要在pro文件里面添加一行:

QT += serialport

头文件

#include         //提供访问串口的功能
#include     //提供系统中存在的串口的信息

查找可用串口

//通过QSerialPortInfo查找可用串口
foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
{
    qWarning() << info.portName();
}

一、设置和打开串口

//创建串口对象
QSerialPort serial;
//设置串口名COM1
serial.setPortName("COM1");
//设置波特率115200
serial.setBaudRate(QSerialPort::Baud115200);
//设置数据位数8位
serial.setDataBits(QSerialPort::Data8);
//设置无奇偶校验
serial.setParity(QSerialPort::NoParity);
//设置停止位1位
serial.setStopBits(QSerialPort::OneStop);
//设置没有流控制
serial.setFlowControl(QSerialPort::NoFlowControl);
//读写方式打开串口
serial.open(QIODevice::ReadWrite);

二、连接信号槽读取串口数据到缓冲区

// 连接信号和槽
QObject::connect(&serial,&QSerialPort::readyRead,
    this,&SerialClass::readyReadData);
 
// 槽函数实现
void SerialClass::readyReadData()
{
    // 从接收缓冲区中读取串口数据
    QByteArray buffer = serial.readAll();
}

三、发送数据

//数据并转换成utf8格式的字节流
QByteArray data = ui->sendTextData->toPlainText().toUtf8();
serial.write(data);

四、关闭串口

serial->close();

 

你可能感兴趣的:(QT串口)