基于STM32H5的非循环GPDMA链表使用
0 说明
硬件平台:STM32H503RBT6
HAL库版本:STM32Cube_FW_H5_V1.3.0
1 GPDMA链表介绍
STM32H503的GPDMA支持直接编程和使用链表2种方式,直接编程也就是我们常用的DMA使用方式,通过指定目标地址、源地址然后进行单次或循环DMA处理。而使用链表则可以大大提高使用DMA的灵活性,例如可以使用链表配置DMA传输到分散的内存区域。下面就是GPDMA的链表数据结构:
可以看到,每个链表都有一份完整的DMA寄存器数据,DMA首先按照节点1(即LLI1)指定的配置进行传输,处理完毕后执行下一个节点(即LLI2)指定的配置,直到一个节点LLIn(DMA_CxLLR)为NULL时结束工作,如果一个链表又指向了前面的链表则可以进行循环传输。
关于DMA_CxLLR寄存器说明如下: