- static void ADC_Config(void)& n9 s$ l( h E1 x) \3 r
- {0 [, p. W6 D4 |
- ADC_InitTypeDef ADC_InitStructure;
; R; J# S+ h' _2 W3 ?, y2 y
) ~5 K+ Q. l, V/ E. @9 o
* p8 J0 M$ V1 N4 Q. }, W3 _, v- /* ADCs DeInit */
, J5 z6 z5 j( J( f, u1 B - //ADC_DeInit(ADC1);9 S' b4 u4 @$ K4 ^* n% \0 B
- $ U+ ^* S+ y: \( J- j
- /* Initialize ADC structure */
- r( x, M. |& [) |9 U/ {/ Q1 e; g - ADC_StructInit(&ADC_InitStructure);
; I( V0 @% [! l+ W - 8 [* E' M# c3 Y
- /* Configure the ADC1 in continuous mode with a resolution equal to 12 bits */
; k. v4 B8 Y9 C* f% b3 T - ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
% c9 m$ W% F+ {9 N - ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
3 r# c3 ?/ C7 C& C% g - ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;! d) s5 g3 J# K6 ^
- ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;# W6 k! n" ?4 U5 m7 E% b" s
- ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;
2 k4 N d& u" ]! X( d: x2 ` - ADC_Init(ADC1, &ADC_InitStructure);
( |8 |$ g) R: c2 _$ ]9 g2 v
4 P, d. N3 q) C! M- /* Convert the ADC1 Channel 9 with 239.5 Cycles as sampling time */
! m5 E, Q: d9 k& Z - ADC_ChannelConfig(ADC1, ADC_Channel_9 , ADC_SampleTime_239_5Cycles);
/ a' P0 S/ ]$ n2 }& }8 p: H - /* ADC Calibration */
" `3 U6 f9 A' o, @/ g - ADC_GetCalibrationFactor(ADC1);% E c2 {! h) F2 @/ y$ F
1 y5 b( U T x" a5 G4 C- /* ADC DMA request in circular mode */
) T# @7 r) _- b0 w |2 z - //ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular);
8 Y# d7 d9 C. C
' U! E# c3 f& [ { u# E- /* Enable ADC_DMA *// A% _. S! o* Z# b
- //ADC_DMACmd(ADC1, ENABLE);
. ]# i7 u8 Q& Q" S
8 M( p- B# {- `3 ? T- /* Enable the ADC peripheral */7 j) h& c& F3 s h9 M
- ADC_Cmd(ADC1, ENABLE); * O1 v( `; Y# F+ P
- 5 `( I: B( u/ ]
- /* Wait the ADRDY flag */" m+ r9 M0 O' s* k) Y- d+ z7 n. V% u
- while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY)); ' r" B& x- K5 y5 a. i2 q$ u
4 E; I1 ~0 S# `+ K6 @$ Y ?6 k- /* ADC1 regular Software Start Conv */
+ U4 D9 _9 H b2 I - ADC_StartOfConversion(ADC1);
& x j# b+ |) Y0 R3 _9 S - . P, u& h) E, I. `" X+ N. w
- }
, C; ~& w! I; @0 g
7 |( ]$ v: } r* H- while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束3 A' A ?0 ?6 [5 M2 ^- c: n
- _adc=ADC_GetConversionValue(ADC1);
复制代码
; A* z$ b! `6 U5 S
! G5 k0 \7 p/ ^5 {- m: p" X3 [/ Y5 t* k7 Q5 s' J/ h4 z
% I# J8 M, D: T: B0 o/ s) I |