资源简介
stm32f4系列ADC四路采集,主从ADC模式交替转变,实测可行,资源大家一起分享,研究时间过长!
代码片段和文件信息
#include “stm32f4xx.h“
#include “BSP_ADC.h“
#define ADC_DR_ADDRESS ((uint32_t)0x40012308)
#define ADC_BUF_SIZE 4
__IO u16 aADCConvertedValue[ADC_BUF_SIZE];
//初始化ADC
void _BSP_ADC_Init()
{
ADC_CommonInitTypeDef ADC_CommonInitStructure ;
ADC_InitTypeDef ADC_InitStructure;
DMA_InitTypeDef DMA_InitStructure;
DMA_DeInit(DMA2_Stream0);
while (DMA_GetCmdStatus(DMA2_Stream0) != DISABLE)
{
}
/* DMA2 Stream0 channel2 configuration **************************************/
DMA_InitStructure.DMA_Channel = DMA_Channel_0;
DMA_InitStructure.DMA_PeripheralbaseAddr = (uint32_t)ADC_DR_ADDRESS;
DMA_InitStructure.DMA_Memory0baseAddr = (uint32_t)aADCConvertedValue;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
DMA_InitStructure.DMA_BufferSize = ADC_BUF_SIZE;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable;
DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;
DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
DMA_Init(DMA2_Stream0 &DMA_InitStructure);
DMA_Cmd(DMA2_Stream0 ENABLE);
RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1ENABLE); //ADC1复位
RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1DISABLE); //复位结束
RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2ENABLE); //ADC2复位
RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2DISABLE); //复位结束
ADC_CommonInitStructure.ADC_Mode = ADC_DualMode_RegSimult;//双通道模式
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;//两个采样阶段之间的延迟5个时钟
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_1; //DMA
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div8;//预分频4分频。ADCCLK=PCLK2/8=168/8=21MhzADC时钟最好不要超过36Mhz
ADC_CommonInit(&ADC_CommonInitStructure);//初始化
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//12位模式
ADC_InitStructure.ADC_ScanConvMode = ENABLE;//扫描模式
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//连续转换
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//禁止触发检测,使用软件触发
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//右对齐
ADC_InitStructure.ADC_NbrOfConversion = 2;// 2个转换在规则序列中 也就是只转换规则序列2
ADC_Init(ADC2 &ADC_InitStructure);//ADC初始化
/* ADC2 regular channel5 configuration **************************************/
ADC_RegularChannelConfig(ADC2 ADC_Chann
- 上一篇:使用DShow进行摄像头采集并拍照
- 下一篇:ARM控制蜂鸣器
相关资源
- STM32 多串口DMA传输透传带DEBUG输出代码
- 基于STM32的智能小车资料
- STM32F103C8T6库Altium Designer
- STM32L151工程模板.rar
- 基于STM32的智能小车设计
- 基于STM32的12832液晶显示驱动
- AD9837驱动.txt
- STM32F103驱动无线模块CC1101程序
- 基于LABVIEW 的STM32USB数据采集
- stm32多路超声波模块测距多路定时器输
- STM32的12864驱动程序(免积分)
- STM32F4系列 LQFP PCB封装
- STM32F407VGT6原理图和PCB库
- STM32F407VET6原理图和PCB库
- STM32F405RGT6原理图和PCB库
- 正点原子stm32 mini板内部flash LCD显示图
-
STM32串口控制DFPla
yer_Mini播放模块 - OLED12864显示屏,12位ADC,按键中断,
- stm32控制的PID温度控制系统介绍
- stm32实现电表电量采集
- adc0809ADC+proteus电压采集数码管显示
- STM32F103RCT6 最小的系统原理图
- STM32舵机控制程序
- 源享科技刘凯老师STM32高清视频教程
- 利用adc0808出pwm程序
- ALIENTEK战舰STM32开发板及模块元器件封
- stm32f103音乐播放器
- 基于STM32的SPWM波产生程序
- stm32实现USB_存储_HID复合设备
- stm32与cc1100的无线收发点灯程序
评论
共有 条评论