|
/****************************************************************************, g% p' w; ~4 {7 ]
* 名 称: u16 Get_Adc(u8 ch)
- x3 f9 c/ X6 e: N* 功 能:获得ADC值 f, T: V( K' c' {$ S4 A
* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_3
% y( E1 y8 ?: e9 e* 返回参数:12位ADC有效值
# J9 [! y2 S( n4 K* 说 明: . A$ \0 P# e. U* [
****************************************************************************/9 [- v+ E1 k, L3 ~9 _* I& C
u16 Get_Adc(u8 ch) + H0 ^+ K8 C( C) Y( @3 ^3 U8 v
{
4 c6 E1 `! F& r2 G //设置指定ADC的规则组通道,一个序列,采样时间8 M( X) y! l, y- s5 e" c
ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期 z- ~; \% b' `0 _0 P
3 {0 [2 g6 J k- \/ w, ` ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的软件转换启动功能 " r6 j/ I; |& O5 F
" B4 |/ `; d& _( F
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
; |" G* D/ \# Z) C* }' t. w
8 D6 |% h" e: I; U5 C7 q0 x) M! {3 s return ADC_GetConversionValue(ADC1); //返回最近一次ADC1规则组的转换结果
4 O }9 L4 l& z+ A4 J* I+ K} l' B- u5 o! _" h7 s. O2 F
8 }+ G2 ~4 T, q, E) a+ Y/****************************************************************************: N9 g" r: ^4 T" w
* 名 称: u16 Get_Adc_Average(u8 ch,u8 times)
% l. \& A0 b& {. g* 功 能:获取通道ch的转换值,取times次,然后平均 ; d( a& |4 k+ c& q+ n- `" o) O- g
* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_3
2 O) _$ Y+ H8 U* N. M2 t+ R0 j$ q7 Y* times:获取次数
' A2 V( g" _/ T4 r* 返回参数:通道ch的times次转换结果平均值
y& w- d/ k9 v9 p) P2 z* 说 明: 2 L8 D. D4 [- E" u+ P+ T
****************************************************************************/
8 z# v6 Y+ H8 Y: L4 B* Eu16 Get_Adc_Average(u8 ch,u8 times)
5 H; T } z* [% J8 B{
8 J) W Q( T' \- m; x2 R: n6 R( ~ u32 temp_val=0;* [ N- d% e/ l9 q$ w+ Q, R7 m
u8 t;' g) k( u1 W' B7 R: h2 w' G K8 ^* \$ n
for(t=0;t<times;t++)
; x5 X0 o* y, e4 i% Y# D {- _) K: [4 B9 _0 S& F+ r
temp_val+=Get_Adc(ch);
5 H1 }1 e( X5 u+ d- u bsp_DelayMS(1);
4 k6 M; g( H/ {4 I8 x1 O& j }# x. C0 Q9 f6 I. ~6 y( n
return temp_val/times;
6 Q8 W" W: Y# i9 C6 h. P. a1 m" \} 7 A& Y: Q) A( v2 H/ w% u
# [ \) F% t6 x0 }
7 H. O' `& G% M! p
, R4 F9 z$ m b: {0 l! `& e1 b# v# j0 o& @8 t
1 M$ D8 d. `1 }( i, n* x. U( t$ g5 _6 f( P$ ^
3 E7 L' O( M, A
8 U, _& \' W; H; U
" G0 v6 K4 P" _( R% b! m9 }6 K
3 r- f! V) k5 I5 h+ R7 j9 f
) z" J- U+ l# s1 P) M2 ?
8 S- u& ~( ~' x; y' ]8 }- L) |; g" C
; `, s( X0 [2 q; U9 Y" g/ F1 O" s, L4 E' j
& P9 }- B) Z% a. Q) u6 @ |
|