×

工程模板STM32单片机的AD测量

消耗积分:5 | 格式:zip | 大小:6983KB | 2017-07-09

师志勇

分享资料个

STM32单片机的AD测量、两个ADC调试了很久。要多通道自行设置.

  #include “adc.h”

  void adc_init()

  {

  ADC_InitTypeDef ADC_InitStructure;

  GPIO_InitTypeDef GPIO_InitStructure;

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Periph_ADC1|RCC_APB2Periph_ADC2,ENABLE);

  RCC_ADCCLKConfig(RCC_PCLK2_Div6);//12M 最大14M 设置ADC时钟(ADCCLK)

  ADC_DeInit(ADC1);

  ADC_DeInit(ADC2);

  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;//ADC

  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN; //模拟输入

  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

  GPIO_Init(GPIOA,&GPIO_InitStructure);

  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;

  ADC_InitStructure.ADC_ScanConvMode = ENABLE;

  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;

  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;

  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;

  ADC_InitStructure.ADC_NbrOfChannel = 1;

  ADC_Init(ADC1, &ADC_InitStructure);

  ADC_Init(ADC2, &ADC_InitStructure);

  //设置指定ADC的规则组通道,设置它们的转化顺序和采样时间

  ADC_RegularChannelConfig(ADC1,ADC_Channel_5,1,ADC_SampleTime_239Cycles5);

  ADC_RegularChannelConfig(ADC2,ADC_Channel_6,1,ADC_SampleTime_239Cycles5);

  ADC_Cmd(ADC1,ENABLE);

  ADC_Cmd(ADC2,ENABLE);

  ADC_ResetCalibration(ADC1);//重置指定的ADC的校准寄存器

  ADC_ResetCalibration(ADC2);//重置指定的ADC的校准寄存器

  while(ADC_GetResetCalibrationStatus(ADC1));//获取ADC重置校准寄存器的状态

  while(ADC_GetResetCalibrationStatus(ADC2));//获取ADC重置校准寄存器的状态

  ADC_StartCalibration(ADC1);//开始指定ADC的校准状态

  ADC_StartCalibration(ADC2);//开始指定ADC的校准状态

  while(ADC_GetCalibrationStatus(ADC1));//获取指定ADC的校准程序

  while(ADC_GetCalibrationStatus(ADC2));//获取指定ADC的校准程序

  ADC_SoftwareStartConvCmd(ADC1, ENABLE);//使能或者失能指定的ADC的软件转换启动功能

  ADC_SoftwareStartConvCmd(ADC2, ENABLE);

  }
工程模板STM32单片机的AD测量

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !