使用串口多缓存

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

发布了66 篇原创文章 · 获赞 144 · 访问量 41万+

猜你喜欢

转载自blog.csdn.net/hpf247/article/details/103971039