微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32 之 ADC_DMA

STM32 之 ADC_DMA

时间:12-03 来源:互联网 点击:

(3)DMA初始化

C语言:Codee#14686

/*******************************************************************************
* Function Name : DMA_Config
* Description : Configures SysTick
* Input : None
* Output : None
* Return : None
*******************************************************************************/
voidDMA_Configration(void)
{
DMA_InitTypeDefDMA_InitStructure_DMA1;

DMA_DeInit(DMA1_Channel1);// 配置DMA1 的通道1寄存器为缺省值

DMA_InitStructure_DMA1.DMA_PeripheralBaseAddr=0x4001244C;// 配置DMA1 外设基地址为 0x4001244C , 在datasheet上可以查到
DMA_InitStructure_DMA1.DMA_MemoryBaseAddr=(unsignedint)(&sys_analog);// 配置DMA1 内存基地址
DMA_InitStructure_DMA1.DMA_DIR=DMA_DIR_PeripheralSRC;// 配置DMA1 外设作为数据传输的来源 ,就是外设向内存中搬运数据
DMA_InitStructure_DMA1.DMA_BufferSize=10;// 配置DMA1 数据缓存大小为 10个数据单位
DMA_InitStructure_DMA1.DMA_PeripheralInc=DMA_PeripheralInc_Disable;// 配置DMA1 外设地址寄存器不变
DMA_InitStructure_DMA1.DMA_MemoryInc=DMA_MemoryInc_Enable;// 配置DMA1 内存地址寄存器递增
DMA_InitStructure_DMA1.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;// 配置DMA1 外设数据宽度为 16位 ,这里注意ADC是12位的
DMA_InitStructure_DMA1.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;// 配置DMA1 内存数据宽度为 16位
DMA_InitStructure_DMA1.DMA_Mode=DMA_Mode_Circular;// 配置DMA1 工作在循环缓存模式
DMA_InitStructure_DMA1.DMA_Priority=DMA_Priority_Medium;// 配置DMA1 的相应通道(channel x)的优先级为 中优先级
DMA_InitStructure_DMA1.DMA_M2M=DMA_M2M_Disable;// 配置DMA1 的相应通道(channel x)内存到内存传输为 使能状态

DMA_Init(DMA1_Channel1,&DMA_InitStructure_DMA1);// 初始化 DMA1_Channel1 的相关寄存器

DMA_Cmd(DMA1_Channel1,ENABLE);// 使能 DMA1_Channel1

}

上一篇:STM32 之 LED
下一篇:STM8_GPIO 推挽输出

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top