|
|
/****************************************************************************
5 f) k4 j) K4 B. O- k* U5 r* 名 称: u16 Get_Adc(u8 ch)
9 k( a, G: Y2 r. Z z& F* 功 能:获得ADC值 e! c1 y0 z- V# d5 D8 K
* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_3
8 ?; I7 q ]: s5 X* 返回参数:12位ADC有效值& X7 D8 V" G" \ G5 Q
* 说 明: ! n' y+ X0 m# i {- v% w
****************************************************************************/' l, Z( D* H3 d( m
u16 Get_Adc(u8 ch) % n8 t- a/ J& d9 F4 B
{6 i5 v8 _* [$ D3 r' a% p1 y2 Q }4 y
//设置指定ADC的规则组通道,一个序列,采样时间
7 h, u" p% t$ P ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期
q$ c: u4 W1 y3 e+ w* j
' v3 I5 _) b: j5 C3 k ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的软件转换启动功能 : ?* p2 a/ A1 @/ G% H/ S4 B+ ?
! c$ k) E8 v. o6 B$ I6 K& W/ N
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
% I5 C* x" Y v6 K6 z* R, I: A, k) C/ `* \9 Q( U
return ADC_GetConversionValue(ADC1); //返回最近一次ADC1规则组的转换结果
- H* }4 g: G( ~}
4 J6 C8 x+ K# h4 K7 E8 B) o
0 K0 A6 r7 |- G3 w# Y/***************************************************************************** W$ L* a( e# H( x# Z
* 名 称: u16 Get_Adc_Average(u8 ch,u8 times)
\9 y& r# ~2 z: x* 功 能:获取通道ch的转换值,取times次,然后平均
/ j3 a1 N5 [% e; k3 R5 [- ^* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_3- B0 _0 @; ^7 }0 u# m s
* times:获取次数, k6 u2 J, W( k6 B2 W
* 返回参数:通道ch的times次转换结果平均值
, I$ c3 i) l2 a8 V# s3 P* 说 明: 3 O. R) v, z( |: `8 _% {" w
****************************************************************************/2 m8 A0 L8 a2 K7 p% L# A+ p( C( s
u16 Get_Adc_Average(u8 ch,u8 times)
) f/ b d! i- ?{
! N* l' w4 N$ @* h2 x/ F5 B! A u32 temp_val=0;0 y' Z) x$ A* b3 ]
u8 t;
/ q% S1 Q- ~8 n8 q1 Q& J, X* ` for(t=0;t<times;t++)7 y/ G0 G3 g- u J
{$ ]5 s3 k7 p$ ?3 r
temp_val+=Get_Adc(ch);
# m) F+ c8 l" q# e% E+ t& V bsp_DelayMS(1);) }' R v1 U {, S4 B! }
}
" s( ]7 i+ i+ v( h g; |: e; O return temp_val/times;: _/ C' {% D e, m7 }
} " ~3 {, \& K7 I9 S
7 e d6 w7 |5 }0 o# Q O
% \8 j9 Y' \9 R0 X T2 E
- t { H- i( O* l+ t/ q
. q+ f2 Z) B5 r) y3 ?
& \ c# } G6 u& A* Q$ y+ y5 e! T7 K
9 D q& g0 d" i2 s6 S3 z
7 F! ~8 ~0 S: p0 @/ z# ?7 n1 L, Y! |" q5 A( V3 r$ `5 ~
. f4 [ h/ G/ w0 H0 D0 R, U, @6 d4 j& T0 Y% J
( K8 l$ ~0 I/ \5 R9 E" _, d8 _1 @& N; w$ J7 g0 z) q
; Q/ P, G t% |! u8 Q& p( @
6 S, E' f6 E; W- l9 U$ ^& g' ?# Y
/ v! E2 n& U |2 i
|
|