理论部分
功能框图
简介
DMA: Data Memory Access,直接存储器访问。
主要功能是可以把数据从一个地方搬到另外一个地方,而且不占用CPU。不用CPU暂存数据
DMA1: 有7个通道,可以实现 P->M, M->P,M->M
DMA2: 有7个通道,可以实现 P->M, M->P,M->M
M:Memery P:Peripheral
P->M:ADC
DMA功能框图
1-DMA请求
2-通道
3-仲裁器
仲裁器
多个DMA请求一起来,怎么办?
1、软件阶段, DMA_CCRx: PL[1:0]。00/01/10/11
2、硬件阶段,通道编号小的优先级大, DM1的优先级高于DMA2的优先级。
固件库函数
DMA结构体:
typedef struct
{
//数据从哪里来,到哪里去
uint32_t DMA_PeripheralBaseAddr; /*!<外设地址 Specifies the peripheral base address for DMAy Channelx. */
uint32_t DMA_MemoryBaseAddr; /*!<存储器地址 Specifies the memory base address for DMAy Channelx. */
uint32_t DMA