- static void ADC_Config(void)( b3 D% I3 R5 p6 j' ?- c* p) ~. X, |/ S
- {
7 { C5 l7 U: g4 F; b& X - ADC_InitTypeDef ADC_InitStructure;; f$ d }- v3 N- |
) [; ?6 n/ w+ s" z! s- 6 E7 D" y( w; }
- /* ADCs DeInit */ % g u% t! P J7 ?: Y7 |! Z+ N1 k6 E
- //ADC_DeInit(ADC1);
, Q3 q4 }+ r5 v" ?8 B - : L; D8 S7 ~3 m" v
- /* Initialize ADC structure */
! L% h5 ?6 ?+ Q, t" O `7 D, b - ADC_StructInit(&ADC_InitStructure);
" d. Z6 s# L: G2 u4 f - + L) z4 t/ y5 r8 `3 M l
- /* Configure the ADC1 in continuous mode with a resolution equal to 12 bits */4 x( v5 V0 }2 q7 q0 l2 |1 K
- ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;0 S; H2 B' }. h; N l
- ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; 8 ^9 D4 {( n2 Z: h8 O! _" t, j
- ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;8 V8 I; A# h! e m. {+ m! I' S. J
- ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;$ D1 E; R0 M, {4 S4 r, X( J
- ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;/ i* ?$ b- V3 q6 b
- ADC_Init(ADC1, &ADC_InitStructure);
: D& ?! x& c1 \2 E4 U9 Y& s% K9 _ - + w$ y) o. G; |
- /* Convert the ADC1 Channel 9 with 239.5 Cycles as sampling time */
- b1 j, G' ]$ O0 k - ADC_ChannelConfig(ADC1, ADC_Channel_9 , ADC_SampleTime_239_5Cycles);' T2 }* D' }/ i$ [& \7 G$ j
- /* ADC Calibration */" Q; k- A! j$ [9 r
- ADC_GetCalibrationFactor(ADC1);
3 c8 g. b' Y& X. F Y
8 C, N2 d' D q3 l! o4 Y- /* ADC DMA request in circular mode */
+ r7 `" B" S( B( X* k - //ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular);' x" W4 X% I$ Y) o
3 x. Z( I2 j5 Q+ a6 ^4 {" j- c! g' T- /* Enable ADC_DMA */
3 a0 C/ {' P( x8 i7 w5 V# n$ b - //ADC_DMACmd(ADC1, ENABLE); . d/ d' g- F! ?! l# C! C
- 9 s' c+ \2 x0 D' y2 `% h" L
- /* Enable the ADC peripheral */
% h+ Y1 k: b$ q6 s - ADC_Cmd(ADC1, ENABLE);
: Z5 m4 P7 V5 [% _+ }( j8 V9 e - & J7 m: }1 ^/ S. i: P( ^
- /* Wait the ADRDY flag */) f! w& v2 {9 n9 V0 n3 r, c
- while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY));
+ C3 m$ m& b& d' r7 W) ~& d
- ]/ @% Q) ]$ t+ p* Q4 ~$ V# X- /* ADC1 regular Software Start Conv */
. ~! j$ Z$ y2 Z2 ~8 X - ADC_StartOfConversion(ADC1);
, d& A8 a, W5 e1 z - : Z/ U h. d& L
- }1 Q5 ^: W6 Z1 X4 M
- 5 ~: w2 |% ~( ]1 ?( y/ n, R! f
- while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
r3 |6 @9 M1 a0 H - _adc=ADC_GetConversionValue(ADC1);
复制代码
i. q7 X* X: n8 }
3 J" ?, q0 H: t- @9 R& n, ~1 g1 _* p
1 @6 o; v% v6 z. S( V
) d3 J" _- I5 e ~ |