问题
在RM遥控器接收例程中可能有bug
在RC_init
中设置了双缓冲区模式,根据f4参考手册:
但是在串口3中断中,又手动切换了缓冲区:
这样是不是切换了两次,相当于没有切换?
解决
经过试验,设置双缓冲模式后,并没有自动切换缓冲区,仍然需要在中断中手动切换。
经过试验,设置双缓冲模式后确实发生了切换。原例程有bug。
原例程行为:
发送一帧数据,DMA自动切换为缓冲区1,在中断里判断挡墙缓冲区为1,手动切换回缓冲区0,并处理缓冲区0数据。
在发送一帧数据,DMA自动切换为缓冲区1,在中断里判断挡墙缓冲区为1,手动切换回缓冲区0,并处理缓冲区0数据。
正确:
发送一帧数据,DMA自动切换为缓冲区1,在中断里处理缓冲区0数据。
在发送一帧数据,DMA自动切换为缓冲区0,在中断里处理缓冲区1数据。