当前位置:C++技术网 > 资讯 > Qt串口操作之接收数据与读取数据

Qt串口操作之接收数据与读取数据

更新时间:2016-05-28 12:45:56浏览次数:1+次

首先废话不多说,直接上代码(Qt 5.5 + MINGW + WIN7下的代码):

    portReader = new QSerialPort;//使用串口操作类,portReader是我的私有变量
    portReader->setPortName (ui->lineEdit->text ());/*ui->lineEdit->text ()是我的串口名,使用的时候,读者自行换成自己的名字,COM1 COM2神马的随意哈~*/

    portReader->open (QIODevice::ReadOnly);//打开串口,这里我是只读的方式,也可以是别的

    portReader->setBaudRate(QSerialPort::Baud9600);//设置波特率(波特率的含义自己查哈)
    portReader->setParity(QSerialPort::NoParity);//设置校验位,,自己查啥意思哈
    portReader->setDataBits(QSerialPort::Data8);//设置数据位8位,可以根据自己的情况更换
    portReader->setStopBits(QSerialPort::OneStop);//设置停止位
    portReader->setFlowControl(QSerialPort::NoFlowControl);//设置流量控制(我设置的是没有)

    portReader->clearError();//如果发生错误就清除错误
    portReader->clear();//清理缓冲区

    connect (portReader,SIGNAL(readyRead()),this,SLOT(showRecvData()));/*与我的槽函数链接显示接受信息*/ void Widget::showRecvData () 
{ 
     QByteArray arry = portReader->readAll (); 
     ui->textEdit->insertPlainText (arry);//一定要用insertText,append会直接加换行符!
                        //textEdit是我拖来的控件
}

就这样,我们完成了串口的读操作。

开始写的操作:

void Widget::on_sendMsgBtn_clicked()       //发送数据槽函数
{
myCom->write(ui->sendMsgLineEdit->text().toAscii());//以ASCII码形式将行编辑框中的数据写入串口(按照你的单片机处理数据类型来选择)
}

到这里就搞定。。。