当前位置:首页 > 单片机 > 单片机
[导读]一、DMA的定义:DMA,全称为:Direct Memory Access,即直接存储器访问。DMA传输方式无需CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM 与I/O设备开辟一条直接传送数据的通路,

一、DMA的定义:

DMA,全称为:Direct Memory Access,即直接存储器访问。DMA传输方式无需CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM 与I/O设备开辟一条直接传送数据的通路,能使CPU 的效率大为提高。

二、stm32的DMA1、DMA2功能介绍。

STM32中 DMA1有7个通道,DMA2有5个通道(DMA2 仅存在大容量产品中)。DMA挂载的时钟为AHB总线,其时钟为72Mhz,所以可以实现高速数据搬运。

下面我们就针对DMA1 进行介绍。

下面我们就针对DMA2进行介绍。

三、DMA1初始化。

1、时钟初始化。

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);

2、配置初始化。

void DMA_Configuration(void)

{

DMA_InitTypeDef DMA_InitStructure;DMA_DeInit (DMA1_Channel1 );//将DMA的通道1寄存器设为默认值

DMA_InitStructure .DMA_PeripheralBaseAddr =(u32)&(ADC1->DR);//DMA外设的基地址

DMA_InitStructure.DMA_MemoryBaseAddr =(u32)&AD_Value;//DMA内存地址

DMA_InitStructure .DMA_DIR =DMA_DIR_PeripheralSRC;//外设作为源,数据传输方向为外设到内存DMA_InitStructure .DMA_BufferSize =N*M;//DMA缓存的

DMA_InitStructure .DMA_PeripheralInc =DMA_PeripheralInc_Disable;//接收一次数据后,外设地址固定

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

DMA_InitStructure .DMA_PeripheralDataSize =DMA_PeripheralDataSize_HalfWord ;//DMA外设数据长度为半字,16字节

DMA_InitStructure .DMA_MemoryDataSize =DMA_MemoryDataSize_HalfWord;//内存数据长度,16字节

DMA_InitStructure .DMA_Mode =DMA_Mode_Circular ;//工作在循环模式

DMA_InitStructure .DMA_Priority =DMA_Priority_High ;//DMA通道拥有高优先级

DMA_InitStructure .DMA_M2M =DMA_M2M_Disable ;//DMA 通道没有设置为内存到内存传输

DMA_Init (DMA1_Channel1 ,&DMA_InitStructure );//初始化dma1

DMA_Cmd (DMA1_Channel1 ,ENABLE );

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭