大佬们,我用32的DMA传输我编码模式下的TIM2的计数值,为啥怎么都没有?
附上DMA的初始化程序
void MYDMA_Config(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar,u16 cndtr)
{
//u32 DR_Base;//做缓冲用
RCC->AHBENR|=1<<0; //开启DMA1时钟
//DR_Base=cpar;
//delay_ms(1); //等待DMA时钟稳定
__nop();
__nop();
__nop();
//DMA_CHx->CPAR=DR_Base; //DMA1 外设地址
DMA_CHx->CPAR=cpar; //DMA1 外设地址
DMA_CHx->CMAR=(u32)cmar; //DMA1,存储器地址
DMA1_MEM_LEN=cndtr; //保存DMA传输数据量
DMA_CHx->CNDTR=cndtr; //DMA1,传输数据量
DMA_CHx->CCR=0X00000000; //复位
//DMA_CHx->CCR=0x000025A3;
DMA_CHx->CCR=0x00002521;
DMA_CHx->CCR|=1<<0;
//DMA_CHx->CCR|=1<<1; //允许传输完中断
/*
DMA_CHx->CCR&=~(1<<4); //从外设读
DMA_CHx->CCR|=1<<5; //循环管模式
DMA_CHx->CCR|=0<<6; //外设地址非增量模式
DMA_CHx->CCR|=1<<7; //存储器增量模式
DMA_CHx->CCR|=1<<8; //外设数据宽度为16位
DMA_CHx->CCR|=1<<10; //存储器数据宽度16位
DMA_CHx->CCR|=1<<12; //中等优先级
DMA_CHx->CCR|=0<<14; //非存储器到存储器模式
*/
// DMA1->IFCR |= 1<<1; //清零通道完成中断标志位
// MY_NVIC_Init(1,3,DMA1_Channel1_IRQn,2);
}
一周热门 更多>