有关STM32定时器DMA设置中关于外设地址的问题求解答。 20
根据初始化外设地址为TIM1_DMAR_Address:DMA_InitStructure.DMA_PeripheralBaseAddr=(uint32_t)(TIM1_...
根据初始化外设地址为TIM1_DMAR_Address:
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(TIM1_DMAR_Address) ;
而有一个DMA配置的库函数起始地址为TIM_DMABase_CCR2:
TIM_DMAConfig(TIM1, TIM_DMABase_CCR2, TIM_DMABurstLength_1Byte );
请问这个外设地址TIM1_DMAR_Address和起始地址TIM_DMABase_CCR2之间到底有什么联系呢,是不是一样的呢? 展开
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(TIM1_DMAR_Address) ;
而有一个DMA配置的库函数起始地址为TIM_DMABase_CCR2:
TIM_DMAConfig(TIM1, TIM_DMABase_CCR2, TIM_DMABurstLength_1Byte );
请问这个外设地址TIM1_DMAR_Address和起始地址TIM_DMABase_CCR2之间到底有什么联系呢,是不是一样的呢? 展开
展开全部
这两个地址是不一样的。前者实际写入的是DMA_CPARx寄存器,作用是配置DMA通道对应的外设的数据寄存器地址;后者实际写入的是DMA_CCR寄存器,作用是配置DMA通道的各种工作参数(例如字宽、增量模式、数据传输方向、中断的开关等等)。
追问
那这个写入CCR寄存器的起始地址有什么用呢?
我们用DMA不都是用内存地址和写入DMA_CPAR寄存器的外设寄存器地址进行相互传输,而TIM_DMAConfig函数中的CCR和我们DMA有什么关系呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询