- static void ADC_Config(void)0 K9 u- T; s) t5 W( W- B
- {
, c& i" R9 d0 N/ L+ J: v I5 q - ADC_InitTypeDef ADC_InitStructure;
+ Y1 c% g: x( {1 b* _0 B3 `, H! b - % N* G) g0 Y7 |; h7 H+ }/ ]+ e
- " D. Z) ~( B( j+ | Z
- /* ADCs DeInit */ 9 E/ k" M7 D/ t# M
- //ADC_DeInit(ADC1);
. C9 F4 i& Y k3 R - 9 H; A: S; ?7 Z
- /* Initialize ADC structure */& ?) i' x' t" \+ h/ a
- ADC_StructInit(&ADC_InitStructure);* H8 m1 Y; a) ^3 X8 U, V% d
) e( d8 p" d3 E& `( C- /* Configure the ADC1 in continuous mode with a resolution equal to 12 bits */
- v) s' d1 C& a& V2 c' t - ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;7 H% `$ h/ j7 S3 N; w0 |
- ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
0 P, v! a, i$ h, \ - ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
) K2 ]* \& m+ t5 }* {' S2 B. y - ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;! Q1 d1 _. y" V% G& d
- ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;
: o4 J @3 J2 v. P9 t& E: ^ - ADC_Init(ADC1, &ADC_InitStructure); + `/ w. i3 p$ U9 r o" P
- , S) r& a# F0 A9 V; c! u( |: x
- /* Convert the ADC1 Channel 9 with 239.5 Cycles as sampling time */
+ `9 ?3 u4 T! W - ADC_ChannelConfig(ADC1, ADC_Channel_9 , ADC_SampleTime_239_5Cycles);2 {5 h7 K9 g: R( G! M3 l$ L1 \5 M0 u
- /* ADC Calibration */
% j- ?9 j1 p3 W - ADC_GetCalibrationFactor(ADC1);
3 ~' J+ k, r, m# e/ ]$ E
6 I% Y# d3 O8 B* V6 D6 @6 y- /* ADC DMA request in circular mode */
' g4 y# D4 ]7 b% L9 ?+ r7 m) }$ E - //ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular);7 B6 b. T4 F$ ^' }! t, |" w; N5 t# y
- / A1 g. ^& P6 ?3 h" w! f2 u7 `
- /* Enable ADC_DMA */
& w" a P7 r4 P$ Y9 h0 J* K - //ADC_DMACmd(ADC1, ENABLE);
V3 C: n; X# S4 H - ! q: w' @ z9 m- m4 c; t
- /* Enable the ADC peripheral */
1 X0 g9 l7 `& m( e( M - ADC_Cmd(ADC1, ENABLE); n) S) ~' q' ]5 J7 ]' n% R
- g, n/ L% X: i: L1 X
- /* Wait the ADRDY flag */
5 N2 v$ c4 [# F3 {0 w) N8 A2 f - while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY)); ; c* q# R8 H' \+ C1 c& ]
- 0 ^( ~# k" o* S( N- B
- /* ADC1 regular Software Start Conv */ + ~+ q" E- ^5 ?5 I1 X2 Z, W; ^" s
- ADC_StartOfConversion(ADC1);3 y! A- `! x# @% G3 g* s/ O0 L
- {- W7 D% Z6 \( w5 ]4 G
- }% W" p( Y! @' t+ k3 y3 R8 C# B
- / B c' {! m k# j4 U
- while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
; e, h" A5 H" e( j+ D8 ? - _adc=ADC_GetConversionValue(ADC1);
复制代码 6 d- Z% P0 l R( @8 n
3 W% T' k; S6 H( l2 H) A% m" S% Y3 d& I/ T6 I$ O" O
7 Z" W6 ]2 T, k# D
|