RM遥控器例程双缓冲

问题

在RM遥控器接收例程中可能有bug
RC_init中设置了双缓冲区模式,根据f4参考手册:在这里插入图片描述
但是在串口3中断中,又手动切换了缓冲区:
在这里插入图片描述
这样是不是切换了两次,相当于没有切换?

解决

经过试验,设置双缓冲模式后,并没有自动切换缓冲区,仍然需要在中断中手动切换。
经过试验,设置双缓冲模式后确实发生了切换。原例程有bug。

原例程行为:
发送一帧数据,DMA自动切换为缓冲区1,在中断里判断挡墙缓冲区为1,手动切换回缓冲区0,并处理缓冲区0数据。
在发送一帧数据,DMA自动切换为缓冲区1,在中断里判断挡墙缓冲区为1,手动切换回缓冲区0,并处理缓冲区0数据。

正确:
发送一帧数据,DMA自动切换为缓冲区1,在中断里处理缓冲区0数据。
在发送一帧数据,DMA自动切换为缓冲区0,在中断里处理缓冲区1数据。

猜你喜欢

转载自blog.csdn.net/lqysgdb/article/details/113444324