源代码:
void HardWareThread::ReadCom()
{
Output_timer->stop();
if (!Buffer.isEmpty())
{
Buffer = Buffer.toHex();
if (Buffer.size() == 22)
{
Input_timer->stop();
LaserRangingArray = Buffer;
Buffer.clear();
qDebug() << LaserRangingArray;
HardWareSerialPort->write("$ANGLE#6804000408");
}
if (Buffer.size() == 28)
{
Input_timer->start();
AgleArray = Buffer;
Buffer.clear();
qDebug() << AgleArray;
}
//qDebug() << QThread::currentThreadId();
}
}
void HardWareThread::onTimeout()
{
HardWareSerialPort->write("$LASER#80060278");
}
通过定时器和延时接受交叉发送指令读取单片机的两种数据,但是会在一会儿后线程卡死。