目录
前言
上文讲述了使用非扫描模式配置ADC多通道,但是为了提高效率,本文会用扫描模式配置多通道。
但是规则组的数据寄存器只能放得下一个通道的转换结果,后来的数据会将已在的数据进行覆盖,为避免出现这种情况,本文会使用DMA将每个通道的数据进行搬运,以此实现扫描模式配置ADC多通道。
提示:以下是本篇文章正文内容,下面案例可供参考
一、介绍DMA
(1)概念
DMA的全称是Direct Memory Access,意为直接存储器存取。
DMA用于外设和存储器以及存储器和存储器之间的高速数据传输,并且这个传输过程无需CPU干涉,节省了CPU的资源。
(2)硬件资源
对于大容量的STM32芯片,一般都有两个DMA外设。分别是DMA1(7个通道),DMA2(5个通道)。
每个通道都支持软件触发和特定的硬件触发。
硬件触发一般用于外设和存储器之间,软件触发用于存储器和存储器之间。
(3)整体框图
上图为DMA的整体框图,从图中我们可得以下几点信息
- DMA仲裁器配置通道优先级。在总线矩阵中也有仲裁器,当DMA和CPU同时向同一个数据发送请求时,会暂停CPU的请求,但也会有一半的带宽留给CPU。