diff --git a/components/zcancmder/zcanreceiver.cpp b/components/zcancmder/zcanreceiver.cpp index 44afaa5..f52d485 100644 --- a/components/zcancmder/zcanreceiver.cpp +++ b/components/zcancmder/zcanreceiver.cpp @@ -321,6 +321,11 @@ void ZCanCmder::STM32_HAL_onCAN_RxFifo0MsgPending(CAN_HandleTypeDef *canHandle) rxbuf->m_canPacketNum = 0; } + if (rxbuf->m_canPacketNum != frameId) { + rxbuf->m_canPacketNum = 0; + continue; + } + if (rxbuf->m_canPacketNum < ZARRAY_SIZE(rxbuf->m_canPacket)) { rxbuf->m_canPacket[rxbuf->m_canPacketNum].dlc = pHeader.DLC; memcpy(rxbuf->m_canPacket[rxbuf->m_canPacketNum].aData, aData, 8);