STM32F4有2个DMA,每个DMA控制器有8个数据流,每个数据流有多达8个通道,但是DMA1 控制器 AHB 外设端口与 DMA2 控制器的情况不同,不连接到总线矩阵,因此,仅 DMA2 数据流能够执行存储器到存储器的传输。
typedef struct
{
uint32_t DMA_Channel; //选择通道
uint32_t DMA_PeripheralBaseAddr; //DMA外设基地址
uint32_t DMA_Memory0BaseAddr; //DMA存储器地址
uint32_t DMA_DIR; //DMA传输方向
uint32_t DMA_BufferSize; //数据传输量
uint32_t DMA_PeripheralInc; //外设增量模式选择
uint32_t DMA_MemoryInc; //存储器增量模式
uint32_t DMA_PeripheralDataSize; //设置外设数据宽度
uint32_t DMA_MemoryDataSize; //设置存储器数据宽度
uint32_t DMA_Mode; //运行模式选择
uint32_t DMA_Priority; //优先级选择
uint32_t DMA_FIFOMode; //FIFO模式选择
uint32_t DMA_FIFOThreshold; //FIFO阀值
uint32_t DMA_MemoryBurst; //存储器突发单次传输
uint32_t DMA_PeripheralBurst; //外设突发单次传输
}DMA_InitTypeDef;
STM32F4有2个DMA,每个DMA控制器有8个数据流,每个数据流有多达8个通道,但是DMA1 控制器 AHB 外设端口与 DMA2 控制器的情况不同,不连接到总线矩阵,因此,仅 DMA2 数据流能够执行存储器到存储器的传输。
typedef struct
{
uint32_t DMA_Channel; //选择通道
uint32_t DMA_PeripheralBaseAddr; //DMA外设基地址
uint32_t DMA_Memory0BaseAddr; //DMA存储器地址
uint32_t DMA_DIR; //DMA传输方向
uint32_t DMA_BufferSize; //数据传输量
uint32_t DMA_PeripheralInc; //外设增量模式选择
uint32_t DMA_MemoryInc; //存储器增量模式
uint32_t DMA_PeripheralDataSize; //设置外设数据宽度
uint32_t DMA_MemoryDataSize; //设置存储器数据宽度
uint32_t DMA_Mode; //运行模式选择
uint32_t DMA_Priority; //优先级选择
uint32_t DMA_FIFOMode; //FIFO模式选择
uint32_t DMA_FIFOThreshold; //FIFO阀值
uint32_t DMA_MemoryBurst; //存储器突发单次传输
uint32_t DMA_PeripheralBurst; //外设突发单次传输
}DMA_InitTypeDef;
举报