首先废话不多说,直接上代码(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码形式将行编辑框中的数据写入串口(按照你的单片机处理数据类型来选择)
}
到这里就搞定。。。