使用串口多緩存

串口的多緩存就是指有多個緩存,一般指短時間內不斷髮送數據,從而存到不同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區域)
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章