打印

在DMA正常传输的情况下,为什么DMA传输完成很多次,DMA才中断一次

[复制链接]
2006|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zbystm32|  楼主 | 2013-7-23 19:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void MYDMA_Config(DMA_Channel_TypeDef*DMA_CHx,u32 cmar,u32 cpar,u16 cndtr)
{
u32 DR_Base;  //
RCC->AHBENR|=1<<0;//开启DMA1时钟
DR_Base=cpar;
DMA_CHx->CPAR=DR_Base;   //DMA1 外设地址  
DMA_CHx->CMAR=(u32)cmar; //DMA1,存储器地址
DMA1_MEM_LEN=cndtr;      //保存DMA传输数据量
DMA_CHx->CNDTR=cndtr;    //DMA1,传输数据量
DMA_CHx->CCR=0X00000000;//复位   
DMA_CHx->CCR&=0<<4;  //从外设读
DMA_CHx->CCR|=1<<5;  //循环模式
DMA_CHx->CCR|=0<<6;  //外设地址非增量模式
DMA_CHx->CCR|=0<<7;  //存储器非增量模式
DMA_CHx->CCR|=1<<8;  //外设数据宽度为8位
DMA_CHx->CCR|=1<<10; //存储器数据宽度8位
DMA_CHx->CCR|=3<<12; //中等优先级
DMA_CHx->CCR|=0<<14; //非存储器到存储器模式
DMA_CHx->CCR|=1<<1;   //允许传输完成中断
// DMA_CHx->CCR|=1<<3;   //允许出错 中断
DMA_CHx->CCR|=1<<0;   //开启DMA传输

MY_NVIC_Init(1,1,DMA1_Channel1_IRQChannel,2);     
}  
void DMAChannel1_IRQHandler(void)     
{LED0=!LED0;
LED1=!LED1;
LED2=!LED2;
LED3=!LED3;
DMA1->IFCR|=1<<1;
// DMA1->IFCR|=1<<3;
}
准确的说是16次传输,才有1次中断
沙发
香水城| | 2013-7-24 13:06 | 只看该作者
哪颗芯片都没说,贴一堆代码。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

4

帖子

0

粉丝