串口的多緩存就是指有多個緩存,一般指短時間內不斷髮送數據,從而存到不同buff區域。】
在STM32的datasheet中說到只有在多緩存通訊中才推薦這種清除程序:
//串口接收
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
if (Recstat != RcvEnd) // 判斷是否接收完成(在滴答定時器中實現串口是否接收完成動作)
{
Timeout = 0; // 超時置爲0
if (Rcvlen < Buffsize)
{
Buff[Rcvlen] = USART_ReceiveData(USART1);
Rcvlen++;
}
if (Rcvlen >= Buffsize)
{
Recstat = RcvEnd;
}
}
//清除接收中斷標誌
USART_ClearITPendingBit(USART1, USART_IT_RXNE); // 此可以實現多緩存(即短時間內不斷髮送數據,然後緩存不同buff區域)
}