GD32F1x0 DMA (ram to ram)具体配置步骤如下:
(1) 使能DMA时钟:rcu_periph_clock_enable(RCU_DMA);
(2) 初始化DMA通道:
dma_init_struct.direction = DMA_PERIPHERA_TO_MEMORY;
dma_init_struct.memory_addr = (uint32_t)destination_address1;
dma_init_struct.memory_inc = DMA_MEMORY_INCREASE_ENABLE;
dma_init_struct.memory_width = DMA_MEMORY_WIDTH_8BIT;
dma_init_struct.number = DATANUM;
dma_init_struct.periph_addr = (uint32_t)source_address;
dma_init_struct.periph_inc = DMA_PERIPH_INCREASE_ENABLE;
dma_init_struct.periph_width = DMA_PERIPHERAL_WIDTH_8BIT;
dma_init_struct.priority = DMA_PRIORITY_ULTRA_HIGH;
dma_init(DMA_CH1,dma_init_struct);
(3) 配置DMA的模式
dma_circulation_disable(DMA_CH1);
dma_memory_to_memory_enable(DMA_CH1);
(4) DMA 通道使能
dma_channel_enable(DMA_CH1);
固件库dma.c文件中,有很详细的DMA各项参数的初始化说明,如图。
|