- static void ADC_Config(void)
L/ c# d6 H+ e- f: f5 G! @ - {$ y7 K8 |3 A( M: W
- ADC_InitTypeDef ADC_InitStructure;
+ K# L0 y* a% B6 _+ c% G6 Z4 b
3 E! m% h* b! Y- H8 L, J' Q8 t
* T, \' K2 a8 }, I, o) L. H- /* ADCs DeInit */
( v4 E& D, U: K( K8 p9 f6 o - //ADC_DeInit(ADC1);
4 X. Q1 W! e0 ~ h# ` - % c3 S7 k3 {5 X9 K
- /* Initialize ADC structure */! Q1 \2 C5 E6 R" m- U& ?* ^0 D* {
- ADC_StructInit(&ADC_InitStructure);$ U& F% `, Z' n
- 3 X( n! L2 ^: F) a, {
- /* Configure the ADC1 in continuous mode with a resolution equal to 12 bits */+ \% A8 x9 T1 r( u8 f: I) h
- ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;! I; u# k/ k- U' @! i- X
- ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
! R: q! b5 w' N0 P5 K+ z - ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
. @) \. x5 Q0 d( n- m - ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
% j5 c5 t9 H- A1 l. p& o/ q5 S - ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;* H" h8 P! P* c
- ADC_Init(ADC1, &ADC_InitStructure);
. z5 G" P- W! R& d. s. s - ; N% T H I- m! X% {6 i5 s1 x# d
- /* Convert the ADC1 Channel 9 with 239.5 Cycles as sampling time */ ) y) \( U' I6 C' D$ n, Q2 } v0 ^
- ADC_ChannelConfig(ADC1, ADC_Channel_9 , ADC_SampleTime_239_5Cycles);
* @- v/ J. u" [2 \/ ~& ?5 L, C! ? - /* ADC Calibration */% }% _: H( o' r; p4 q/ m
- ADC_GetCalibrationFactor(ADC1);: L" }5 q: ~6 E3 \
- 1 D" s! Q2 Q- ?" j6 z* E% r
- /* ADC DMA request in circular mode */
$ `* h% L* f0 B# p, u, [0 J% } - //ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular);
+ Q* N k# F1 X/ k
" }8 q3 n, F" D/ j& `3 M' O- /* Enable ADC_DMA */
, p, N1 g# ]6 @( I - //ADC_DMACmd(ADC1, ENABLE); 1 ]) J6 f5 u+ D% `
- 0 r2 L# ~. k3 T
- /* Enable the ADC peripheral */
/ u+ _9 s) X5 Y- k2 U1 Z, @ - ADC_Cmd(ADC1, ENABLE); V$ I0 \9 F* a0 e0 E
- # M d2 J& R2 }) v& S
- /* Wait the ADRDY flag */3 ?* ~$ x ?) a; X+ l
- while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY));
7 ]0 G9 S2 P) N7 D% ^" s
. w) T& O" s3 v2 k: B! h- /* ADC1 regular Software Start Conv */ 1 H1 E6 m5 d! A* e$ z; ^. m( G1 f9 K+ V1 i
- ADC_StartOfConversion(ADC1);
{2 E% Q% E+ X) W
: A& |. [! v# l- }
' O& o4 K7 M2 P: k& q. v - ; H" k# {3 `" X W! u6 m0 J/ t) Y4 X1 J
- while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束" q. i6 t& `$ E" ~
- _adc=ADC_GetConversionValue(ADC1);
复制代码 9 P4 ~) c6 v8 m8 b
) Y, B9 s4 w: X# w& p
6 X2 W- H$ ?8 x
/ |. f( ? P8 `: A( @7 a; G. s# r |