This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

zstack使用DMA串口传输数据时,当一次传输数据量过大,数据会分多次读出,在线求解答!

       数据包大于65小于128时,HalUARTRead该函数分三次读出数据,原因是在HalUARTReadDMA该函数中有这么一句

if (!HAL_UART_DMA_NEW_RX_BYTE(dmaCfg.rxHead))
{
break;
}

#define HAL_UART_DMA_NEW_RX_BYTE(IDX)  (DMA_PAD == HI_UINT16(dmaCfg.rxBuf[(IDX)]))

当rxBuf中数据的高八位等于DMA_PAD时则表示有数据到来,则读出,否则退出。现在的现象是当数据量较大时,rxBuf不知道是DMA传输没来得及还是什么原因,并没有给rxBuf赋值,然后过一小段时间,再给rxBuf赋值。所以导致当我数据量过大时,小于128字节,数据分多次给我读出来,而不是一次性读完。而在协议栈中,我并没找到把DMA_PAD 赋值给rxBuf前八位的代码,这问题应该怎么解决?