QT-串口

作者: lxr_ | 来源:发表于2018-12-05 10:02 被阅读0次

//获取串口信息列表

    QList<QSerialPortInfo> serialPortInfo=QSerialPortInfo::availablePorts();

    int count=serialPortInfo.count();

    for(int i=0;i<count;i++)

    {

        ui->cboxSerialPort->addItem(serialPortInfo.at(i).portName());

    }

bool MainWindow::getSerialPortConfig()

{

    //获取串口配置

    mPortName=ui->cboxSerialPort->currentText();

    mBaudRate=ui->cboxBaudRate->currentText();

    mParity=ui->cBoxParity->currentText();

    mDataBits=ui->cboxDataBits->currentText();

    mStopBits=ui->cboxStopBits->currentText();

    //配置串口

    //波特率

    mSerialPort.setPortName(mPortName);

    if("9600"==mBaudRate)

    {

        mSerialPort.setBaudRate(QSerialPort::Baud9600);

    }

    else if("115200"==mBaudRate)

    {

        mSerialPort.setBaudRate(QSerialPort::Baud115200);

    }

    else if("4800"==mBaudRate)

    {

        mSerialPort.setBaudRate(QSerialPort::Baud4800);

    }

    //校验位

    if("None"==mParity)

    {

        mSerialPort.setParity(QSerialPort::NoParity);

    }

    else if("Mark"==mParity)

    {

        mSerialPort.setParity(QSerialPort::MarkParity);

    }

    else if("Even"==mParity)

    {

        mSerialPort.setParity(QSerialPort::EvenParity);

    }

    else if("Odd"==mParity)

    {

        mSerialPort.setParity(QSerialPort::OddParity);

    }

    //数据位

    if("5"==mDataBits)

    {

        mSerialPort.setDataBits(QSerialPort::Data5);

    }

    else if("6"==mDataBits)

    {

        mSerialPort.setDataBits(QSerialPort::Data6);

    }

    else if("7"==mDataBits)

    {

        mSerialPort.setDataBits(QSerialPort::Data7);

    }

    else if("8"==mDataBits)

    {

        mSerialPort.setDataBits(QSerialPort::Data8);

    }

    //停止位

    if("1"==mStopBits)

    {

        mSerialPort.setStopBits(QSerialPort::OneStop);

    }

    else if("1.5"==mStopBits)

    {

        mSerialPort.setStopBits(QSerialPort::OneAndHalfStop);

    }

    else

    {

        mSerialPort.setStopBits(QSerialPort::TwoStop);

    }

    return mSerialPort.open(QSerialPort::ReadWrite);

}

//发送数据

void MainWindow::on_btnSend_clicked()

{

    if(mIsOpen)

    {

        mSerialPort.write(ui->textEditSend->toPlainText().toStdString().c_str());

    }

}

//串口接收

void MainWindow::on_SerialPort_readyRead()

{

    if(mIsOpen)

    {

        QByteArray recvData=mSerialPort.readAll();

        ui->textEditReceive->append(QString(recvData));

    }

}

相关文章

  • QT-串口

    //获取串口信息列表 QList serialPortInfo=QSerialPortInfo::avail...

  • qt-天气通软件

    title: qt-天气通软件id: 293categories: qtdate: 2015-11-27 12:2...

  • Android串口通讯

    串口通讯的步骤: 1.打开串口。 2.串口处于监听状态 3.想串口写入数据,串口接收到数据返回数据 串口的一个基本...

  • 关于串口格式与报文格式

    《串口硬件分类》中已经说明了几种串口的类型,并在《串口通信协议》中说明了几种串口协议形式,这里就常用的串口协议进一...

  • 树莓派串口通信

    树莓派的串口默认为串口终端调试使用,如要正常使用串口则需要修改树莓派设置。关闭串口终端调试功能后则不能再通过串口登...

  • QT

    QT-读书笔记 https://docs.qq.com/doc/DUVpxdXd2d2tZc2Vt QT教程 ht...

  • 串口编程

    串口连接界面 主要控件 打开串口 自动获取串口列表并显示 初始化串口 写入卡片 插入打卡记录并显示打卡成功

  • Android平台的串口通信技术

    概念 串口通信 概念;串口通信(Serial Communications)按位(bit)发送和接收字节。串口可以...

  • 使用socat虚拟串口

    1、下载socat 2、虚拟串口 3、使用串口 根据步骤2创建的串口名称链接串口、2步骤进程需一直开启

  • 嵌入式开发 - GDB串口远程调试

    1. 准备调试串口 目标板一般只有一个串口用于控制台输入输出,串口远程调试需要第二个串口。下面假设这个串口设备是/...

网友评论

      本文标题:QT-串口

      本文链接:https://www.haomeiwen.com/subject/azcicqtx.html