基本信息
源码名称:ADC多通道采集
源码大小:18.33M
文件格式:.zip
开发语言:C/C++
更新时间:2021-01-21
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
基于STM32F407

 ADC_InitTypeDef ADC_InitStructure ;
    ADC_CommonInitTypeDef ADC_CommonInitStructure ;
    
    // 开启ADC时钟
    RCC_APB2PeriphClockCmd(ADC1_CLK,ENABLE);
    // -------------------ADC Common 结构体 参数 初始化------------------------
    // 独立ADC模式
    ADC_CommonInitStructure.ADC_Mode=ADC_Mode_Independent ;
    // 时钟为fpclk x分频
    ADC_CommonInitStructure.ADC_Prescaler=ADC_Prescaler_Div4 ;
    // 禁止DMA直接访问模式
    ADC_CommonInitStructure.ADC_DMAAccessMode=ADC_DMAAccessMode_Disabled ;//只有在多重ADC模式下使能
    // 采样时间间隔
    ADC_CommonInitStructure.ADC_TwoSamplingDelay=ADC_TwoSamplingDelay_20Cycles ;
    ADC_CommonInit(&ADC_CommonInitStructure);
    
    // -------------------ADC Init 结构体 参数 初始化--------------------------
    ADC_StructInit(&ADC_InitStructure);
    // ADC 分辨率
    ADC_InitStructure.ADC_Resolution=ADC_Resolution_12b ;
    // 扫描模式,多通道采集需要
    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 ;
    //转换通道 3个
    ADC_InitStructure.ADC_NbrOfConversion=3 ;
    ADC_Init(ADC1,&ADC_InitStructure);
    //---------------------------------------------------------------------------
    
    // 配置 ADC 通道转换顺序和采样时间周期
    ADC_RegularChannelConfig(ADC1,ADC1_CHANNEL1,1,ADC_SampleTime_3Cycles);
    ADC_RegularChannelConfig(ADC1,ADC1_CHANNEL2,2,ADC_SampleTime_3Cycles);
    ADC_RegularChannelConfig(ADC1,ADC1_CHANNEL3,3,ADC_SampleTime_3Cycles);
    
    // 使能DMA请求 after last transfer (Single-ADC mode)//DMA在AD转换完自动传输数据到指定存储区
    ADC_DMARequestAfterLastTransferCmd(ADC1,ENABLE);
    // 使能ADC DMA
    ADC_DMACmd(ADC1,ENABLE);
    
    // 使能ADC
    ADC_Cmd(ADC1,ENABLE);
    //开始adc转换,软件触发
    ADC_SoftwareStartConv(ADC1);//如果使用软件触发需要调用 ADC_SoftwareStartConvCmd 函数进行使能配置