STM32定时器DMA连续传送功能示例详解

  1. 在STM32定时器应用中,定时器事件配合DMA连续传输可对定时器的多个寄存器进行读写访问。

  1. 定时器事件可以请求DMA,分为以下几种;并不是所有定时器都支持以下事件, 高级定时器是支持的。其他定时器按功能部分支持,例如基础定时器因为没有输出输入通道,所以只有更新事件。

TIM_DMA_Update: TIM update Interrupt source

TIM_DMA_CC1: TIM Capture Compare 1 DMA source

TIM_DMA_CC2: TIM Capture Compare 2 DMA source

TIM_DMA_CC3: TIM Capture Compare 3 DMA source

TIM_DMA_CC4: TIM Capture Compare 4 DMA source

TIM_DMA_COM: TIM Commutation DMA source

TIM_DMA_Trigger: TIM Trigger DMA source

  1. 定时器DMA控制寄存器

DBL[4:0]: DMA 连续传送长度,该 5 位定义了 DMA 在连续模式下的传送长度。

DBA[4:0]: DMA 基址,该 5 位向量定义 DMA 传输的基址(通过 TIMx_DMAR 地址进行读/写访问时)。 DBA 定义为从 TIMx_CR1 寄存器地址开始计算的偏移量。

  1. 在使用定时器事件请求DMA连续传输时, 需要将DMA设置为存储器到外设模式, DMA通道外设地址为DMAR寄存器地址。DMA通道存储器地址为包含要通过DMA传输到定时器寄存器的数据RAM缓冲区地址。

  1. DMA请求映射

  1. 本示例中使用TIM1的更新事件请求DMA, 根据DMA请求映射可以得出使用DMA2数据5通道6。

  1. 本示例中将内存中的数据通过定时器更新事件请求DMA连续传送至定时器CCR1~CCR4中。

  1. 程序源码

物联沃分享整理
物联沃-IOTWORD物联网 » STM32定时器DMA连续传送功能示例详解

发表评论