1. Qt串口类

在Qt中,可以使用QSerialPort类来实现串口功能。QSerialPort类提供了一组方法来打开、配置、读写和关闭串口。以下是一些常用的方法:

  • setPortName(const QString &name):设置串口名称,例如"/dev/ttyS0"或"COM1"。
  • open(QIODevice::OpenMode mode):打开串口。
  • setBaudRate(qint32 baudRate, QSerialPort::Directions directions = QSerialPort::AllDirections):设置波特率。
  • setDataBits(QSerialPort::DataBits dataBits):设置数据位。
  • setParity(QSerialPort::Parity parity):设置校验位。
  • setStopBits(QSerialPort::StopBits stopBits):设置停止位。
  • write(const QByteArray &data):向串口写入数据。
  • readAll():读取串口接收缓冲区中的所有数据。
  • close():关闭串口。

2. 打开和配置串口

QObject::connect(ui->openButton, &QPushButton::clicked, [=]() {
    // 创建串口对象
    QSerialPort *serialPort = new QSerialPort(this);
    
    // 设置串口名称
    serialPort->setPortName("/dev/ttyS0");
    
    // 打开串口
    if (serialPort->open(QIODevice::ReadWrite)) {
        
        // 配置波特率
        serialPort->setBaudRate(QSerialPort::Baud9600);
        
        // 配置数据位、校验位和停止位
        serialPort->setDataBits(QSerialPort::Data8);
        serialPort->setParity(QSerialPort::NoParity);
        serialPort->setStopBits(QSerialPort::OneStop);
        
        // 其他配置...
        
        // 读取数据
        connect(serialPort, &QSerialPort::readyRead, [=]() {
            QByteArray data = serialPort->readAll();
            // 处理接收到的数据...
        });
    }
});

上述代码中,为了方便演示,我将打开串口和读取数据的逻辑放在了一个按钮的点击事件中。你可以根据自己的需求,将这部分逻辑放在其他合适的地方。

3. 发送数据到串口

// 发送数据
QByteArray sendData = "Hello, Serial Port!";
serialPort->write(sendData);

上述代码中,我们创建了一个QByteArray对象来存储要发送的数据,并使用write()方法将数据发送到串口。

4. 关闭串口

// 关闭串口
serialPort->close();

在不需要使用串口时,一定要记得调用close()方法来关闭串口,释放资源。