串口的多缓存就是指有多个缓存,一般指短时间内不断发送数据,从而存到不同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区域)
}