|
/****************************************************************************3 d, N! ]8 w! T$ b
* 名 称: u16 Get_Adc(u8 ch)
: i1 a' J4 }# I# _7 H* 功 能:获得ADC值
; C d. u3 l* p, @7 b- J `- G* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_3
O% D+ O- d! M3 }* 返回参数:12位ADC有效值
" E9 R, m/ |7 N8 M. ?, y7 r* 说 明:
/ v! b5 t' X; D9 \3 j****************************************************************************/
1 K e `; S6 `u16 Get_Adc(u8 ch) . Z- c5 j S. Y. D9 x% q
{
0 d& `- e5 ~" u //设置指定ADC的规则组通道,一个序列,采样时间3 s* G& q& `* m4 l$ B" K, e
ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期
: s" S4 ?( a# K6 ?6 I8 D8 C7 O% a, W5 Y- S. \; w( J2 W, _3 g
ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的软件转换启动功能 7 @) ?8 T; {- M; e% y; Y: I8 {
! O% Y8 M6 e' Q( z4 o6 z# u
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
?3 n1 [' O0 G* l z' u3 J$ D5 e, U( j+ n0 a4 a
return ADC_GetConversionValue(ADC1); //返回最近一次ADC1规则组的转换结果
2 V, u# Z. ?, `1 }- J& }( A; {7 V}- \% F: k" @5 z2 J/ t
4 m5 A$ J3 `" Q( f- f
/****************************************************************************
. E4 Y% M0 W/ s8 J5 _* 名 称: u16 Get_Adc_Average(u8 ch,u8 times) 2 E4 I1 P) q) J7 q) Y
* 功 能:获取通道ch的转换值,取times次,然后平均
/ K+ l6 Y4 K0 r I! c3 x: H& B7 J3 s2 }* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_3( P1 W9 {- T& z
* times:获取次数6 x$ P# s3 Q* P- M
* 返回参数:通道ch的times次转换结果平均值
3 m& v& C0 `% z- N. h9 x* 说 明: * i; o" N7 b6 O2 I0 ?$ `
****************************************************************************/. E: h9 D+ o, k
u16 Get_Adc_Average(u8 ch,u8 times)6 L* V! E9 {0 u; Z: D2 d/ I0 x
{6 i2 `7 u7 S" q; I4 A. q
u32 temp_val=0;
5 `0 N# D6 V7 f u8 t;
4 ^1 b( @% @3 L* L3 n/ m( `8 R for(t=0;t<times;t++)2 {( x* | Q& U" A; \' z4 r
{3 n) S% T, X+ f( b1 Y: X9 G
temp_val+=Get_Adc(ch);, l6 R: M- g- s% Q9 g. {) m
bsp_DelayMS(1);
3 |6 ]( F# t, D3 R, T4 @( V @6 h }8 H& ]# K8 z* b/ j# U- t3 j( Q
return temp_val/times;: W4 H8 b6 i. K( R, f9 E2 H* ~
} / w! K, X9 O% n
. |* R$ r: X% o# i1 q. N: h4 Y( Z; G4 g' d2 W
& T5 [+ H2 D" M3 Z. n6 O
1 O) y' w2 l5 V) ?+ @- j3 v ]' a4 q4 {
" c4 w, S2 D8 m- M
& ^' a+ j4 k* S) ^9 h7 P( q: V* z3 J7 ~; i/ I$ q" r. X
7 l4 l& f1 w/ M- `2 Q
( M7 o; l. k1 e0 J/ w4 H j4 C9 S( P: _3 q0 t* l
4 q, O j8 s7 o3 I2 X; a
) `/ L: G7 H7 r. t
3 n [/ w D+ V* F# H) E. h
$ G( P8 R ?0 T+ h% {: ]) c9 c
, {% p. q( F) F7 u5 q, P% x0 m5 Z- o+ _6 V, q! F p
|
|