在网上找了个基于qt平台的C++例程,做了个上位机,通过单片机的串口将数据传给电脑。
但是在运行的时候能搜索到串口号,但是得不到温度数据,请问下,
QByteArray mytemp = myserial->readAll();//定义mytemp为串口读取的所有数据 这句话有问题,还是我的通信协议没设置好呢,源码如下所示,谢谢啦
void Widget::AnalyzeData()
{
QByteArray mytemp = myserial->readAll();//定义mytemp为串口读取的所有数据
qDebug()<<"mytemp:"<<mytemp;
if(!mytemp.isEmpty())
{
QString StrI1=tr(mytemp.mid(mytemp.indexOf("T")+1,mytemp.indexOf("P")-mytemp.indexOf("T")-1));//自定义了简单协议,通过前面字母读取需要的数据
QString StrI2=tr(mytemp.mid(mytemp.indexOf("H")+1,mytemp.indexOf("I")-mytemp.indexOf("H")-1));
ui->line_Temp->setText(StrI1);//显示读取温度值
ui->line_zhendong->setText(StrI2);//显示读取湿度值
float dataI1=StrI1.toFloat();//将字符串转换成float类型进行数据处理
float dataI2=StrI2.toFloat();//将字符串转换成float类型进行数据处理
|