实现DMA双缓冲区传输,两个缓冲区buffer1、buffer2,当buffer1进行数据传输时,能对buffer2进行修改吗?能修改的话,在什么时间进行修改?楼主是根据例程18DMA实验进行修改的。
//DMA配置
MYDMA_Config(DMA2_Stream7,DMA_Channel_4,(u32)&USART1->DR,(u32)Buffer1,(u32)Buffer2,30);
//主函数
while(1)
{
t=KEY_Scan(0);
if(t==KEY0_PRES)
{
USART_DMACmd(USART1,USART_DMAReq_Tx,ENABLE);
MYDMA_Enable(DMA2_Stream7,SEND_BUF_SIZE);
while(1)
{
if(DMA_GetFlagStatus(DMA2_Stream7,DMA_FLAG_TCIF7)!=RESET)
{
DMA_ClearFlag(DMA2_Stream7,DMA_FLAG_TCIF7);
break;
}
}
}
i++;
delay_ms(10);
if(i==20)
{
LED0=!LED0;//ìáê¾Ïμí3ÕyÔúÔËDD
i=0;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>