使用DMA时,我们能够看到这样几项:
DMA Request: 是谁请求DMA,或者谁要用DMA
Stream: 选择DMA1,然后选择该DMA的数据流4
Direction: 存储器到外设
Priority: 高优先级
然后还要详细配置:
Mode: 循环模式,也就是双缓冲模式。
Usefifo: 使用fifo。这时内存里会有一个fifo用来填充,可以减少DMA对内存的访问次数从而减少总线访问竞争,通过BURST分组传输优化传输带宽以提升芯片性能。
对于STM32F4来讲,每个DMA stream都有4个字(word)的FIFO可用。它用来暂存来自DMA源端的数据。1个字(word)=32bit=4 byte
threshold:,每当FIFO里存放的数据达到设定的阈值后,数据就会被移走。阈值可以设置为从1个字到4个字的深度。
Burst size:DMA的节拍。即几个数据【4/8/16】被封装成1组,或称1个burst,或称1节。在一节内逐个进行数据传输,每个数据的传输相当于1拍。俨如音乐里的节拍,4拍1节、8拍1节之类的。对于每1节内的数据传输,DMA对总线的占用不会被总线矩阵仲裁器解除或打断,以保证每节数据的可靠完成。