中级会员
 
- 积分
- 277
- 金钱
- 277
- 注册时间
- 2017-3-17
- 在线时间
- 120 小时
|
5金钱
实现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;
}
}
|
|