Project->STM32F10x_StdPeriph_Examples->TIM->DMABurst 的示例代码; 硬件环境:STM32F10V-128K-EVAL,MCU型号为 STM32F103VBT6; 该示例的代码稍微解释下,就会明白 DMA 的寄存器的作用。部分代码如下:
该语句是对寄存器 DMA_CPARx 赋值,存入要操作的是哪种外设,该外设的数据寄存器的基地址,它作 为数据传输的源或目标,在此例中,是作为数据传输的目标的基地址。
标,在此例中,是作为数据传输的源的基地址。(uint32_t)SRC_Buffer; DMA_DIR
DMA_PeripheralInc,DMA_MemoryInc 该示例中,不执行外设地址增量操作,执行存储器地址增量操作。DMA_PeripheralDataSize,DMA_MemoryDataSize 定义外设数据宽度,存储器数据宽度。
在非循环模式中,在数据传输结束后,DMA_CNDTRx 寄存器的内容会变为 0,此时无论通道是否开启, 都不会发生任何数据传输。
在循环模式中,在数据传输结束后,DMA_CNDTRx 寄存器的内容会自动加载变为之前配置的数值, 重新开始数据传输。
2.2 基于 Cube 库函数的可控 PWM 脉冲 直接打开\STM32Cube_FW_L0_V1.1.0\Projects\STM32L053R8-Nucleo\Examples\TIM\TIM_DMABurst 中的示例项目,修改配置符合自己当初的设想:选取 Timer2 的 channel1(PA5),系统时钟通过 HSI 的分频倍频,通过 PLL 实现系统时钟为 8MHz。GPIO 口的设置: Max output speed 的速度为 High。定时器 PWM 模式的设置:向上计数,计数时钟为 8MHz,占空比
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |