Advertisement
dipster

STM32F4 ADC

Sep 20th, 2017
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.72 KB | None | 0 0
  1. void ADCinit_SoftTrigger()      //configurations of adc(sensor) reader
  2. {
  3.     GPIO_InitTypeDef GPIO_InitStructure;
  4.     ADC_InitTypeDef  ADC_InitStructure;
  5.     ADC_CommonInitTypeDef ADC_CommonInitStructure;
  6.  
  7.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC2 | RCC_APB2Periph_ADC3, ENABLE);
  8.     RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
  9.  
  10.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
  11.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
  12.     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  13.  
  14.     GPIO_Init(GPIOA, &GPIO_InitStructure);
  15.  
  16.     ADC_CommonInitStructure.ADC_Mode = ADC_DualMode_RegSimult;
  17.     ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;
  18.     ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
  19.     ADC_CommonInit(&ADC_CommonInitStructure);
  20.  
  21.     ADC_InitStructure.ADC_Resolution = ADC_Resolution_10b;
  22.     ADC_InitStructure.ADC_ScanConvMode = DISABLE;
  23.     ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
  24.     ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
  25.     ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
  26.     ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  27.     ADC_InitStructure.ADC_NbrOfConversion = 1;
  28.  
  29.     ADC_Init(ADC2, &ADC_InitStructure);
  30.     ADC_RegularChannelConfig(ADC2, ADC_Channel_2, 1, ADC_SampleTime_3Cycles);
  31.  
  32.     ADC_Init(ADC3, &ADC_InitStructure);
  33.     ADC_RegularChannelConfig(ADC3, ADC_Channel_3, 1, ADC_SampleTime_3Cycles);
  34.  
  35.     ADC_Cmd(ADC2, ENABLE);
  36.     ADC_Cmd(ADC3, ENABLE);
  37. }
  38.  
  39. // for read ADC_pins
  40. uint16_t ADC_read(ADC_TypeDef* ADCX,uint8_t channel,uint8_t ADC_SampleTime){
  41.     ADC_RegularChannelConfig(ADCX,channel,1,ADC_SampleTime);
  42.     ADC_SoftwareStartConv(ADCX);
  43.     while(ADC_GetFlagStatus(ADCX, ADC_FLAG_EOC)==0);
  44.     return ADC_GetConversionValue(ADCX);
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement