1.串口数据发送
串口数据发送流程为:在串口已经成功打开的情况下,将发送文本框中的内容通过串口发送出去,流程如下图。

step1:从界面设计处转发送按钮槽函数

step2:发送按钮槽函数代码编写,读取发送区文本,数据格式化,并调用函数发送数据
void MainWindow::on_pushButtonSend_clicked()
{
QByteArray ComSendData;
QString SendTemp;
int temp;
//读取发送窗口数据
SendTemp = ui->TextSend->toPlainText();
ComSendData = SendTemp.toLocal8Bit().data();//获取字符串
//发送数据
temp = MyCom.write(ComSendData);
}
2.串口数据接收
当计算机串口接收到数据之后,会发出接收到数据信号 SIGNAL(readyRead()),我们需要将他关联到接收数据的处理函数 MyComRevSlot()。因此,使用 QT 的 connect()函数完成关联,在 mainwindows.cpp 的构造函数中添加如下代码:
//串口接收函数关联
connect(&MyCom,SIGNAL(readyRead()),this,SLOT(MyComRevSlot()));
关联完成后,只要串口完成数据的接收,便会直接进入该函数进行数据处理。
在 mainwindows.cpp 的串口接收函数 MyComRevSlot()中完成数据处理,具体内容为接收数据,格式化,并显示到接收区。
/***********************************************************
*串口接收槽函数
* 1.接收数据,并显示在接收窗口
***********************************************************/
void MainWindow::MyComRevSlot()
{
QByteArray MyComRevBUff;//接收数据缓存
QString StrTemp;
//读取串口接收到的数据,并格式化数据
MyComRevBUff = MyCom.readAll();
StrTemp = QString::fromLocal8Bit(MyComRevBUff);
ui->TextRev->insertPlainText(StrTemp);//显示数据
ui->TextRev->moveCursor(QTextCursor::End);//光标移动到文本末尾
}
3.小结
本小节完成了串口的基本发送和接收功能。注意:不是从设计界面生成的槽函数,记得在头文件中进行函数声明。