标题:使用多线程读写单片机信息,一段时间后线程卡死
作者:bigcatt
日期:2023-03-02 11:10
内容:
源代码:
void HardWareThread::ReadCom()
{
Output_timer->stop();
if (!Buffer.isEmpty())
{
Buffer = Buffer.toHex();
if (Buffer.size() == 22)
{
Input_timer->stop();
LaserRangingArray = Buffer;
Buffer.clear();
qDebug() write("$ANGLE#6804000408");
}
if (Buffer.size() == 28)
{
Input_timer->start();
AgleArray = Buffer;
Buffer.clear();
qDebug()
#1 [fsu0413 03-02 20:07]
Buffer.size()
不是22又不是28不就卡死了吗,这个时候又不clear,又一直不为空,size又不对,又没处理
#2 [fsu0413 03-02 20:09]
而且你这是多线程,肯定会又不止一个线程往buffer里写数据
#3 [bigcatt 03-05 13:26]
最后的原因是上机位指令发送过快,后续没收到回复了,不过你说的也对,谢谢。