搜狐首页 科技 贴身校花2

手机搜狐

SOHU.COM

STM32 DMA笔记

在做实验之前,首先必须明白什么是DMA,DMA的作用又体现在哪里。

DMA,即直接内存存储,在一些数据的传输中,采用DMA方式,从而将CPU解放出来。让CPU有足够的时间处理其他的事情。

stm32使用DMA的相关操作:

1、DMA的配置

要配置的有DMA传输通道选择,传输的成员和方向、普通模式还是循环模式等等。

void DMA_Configuration(void)

{

DMA_InitTypeDef DMA_InitStructure;

//DMA设置:

//设置DMA源:内存地址串口数据寄存器地址

//方向:内存--外设

//每次传输位:8bit

//传输大小DMA_BufferSize=SENDBUFF_SIZE

//地址自增模式:外设地址不增,内存地址自增1

//DMA模式:一次传输,非循环

//优先级:中

DMA_DeInit(DMA1_Channel4);//串口1的DMA传输通道是通道4

DMA_InitStructure.DMA_PeripheralBaseAddr = USART1_DR_Base;

DMA_InitStructure.DMA_MemoryBaseAddr = (u32)SendBuff;

DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;//外设作为DMA的目的端

DMA_InitStructure.DMA_BufferSize = SENDBUFF_SIZE;//传输大小

DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设地址不增加

DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//内存地址自增1

DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;

DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;

DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;

//DMA_Mode_Normal(只传送一次), DMA_Mode_Circular (不停地传送)

精选