|
/****************************************************************************
7 R4 h8 i& d8 L+ N& q+ O7 {+ Q: C* 名 称: u16 Get_Adc(u8 ch) 4 t% K: I o" S& A9 m8 n' e
* 功 能:获得ADC值
& b$ }. P! B8 C+ A, |# }* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_3& B4 ~. M& u2 N3 G
* 返回参数:12位ADC有效值' o% K5 L4 B: H
* 说 明:
/ C* m9 q2 |1 D% b****************************************************************************/
: R% {, t4 v% H* yu16 Get_Adc(u8 ch) $ y" Q7 b! l8 l. `, S7 M
{
2 K, Z x) ~ v$ \ \ //设置指定ADC的规则组通道,一个序列,采样时间
& X+ \5 y3 j' [8 S ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期
! l' ?9 w, ^( ^( C( C: G3 m4 g0 m0 M/ z: G* f$ v+ ?- O6 f
ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的软件转换启动功能 8 Y" v7 A* V8 t
s# Q+ E. d9 j" e while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
3 _( B1 ~5 ]1 C$ I! j' i
2 s1 ]: h9 N& S2 q return ADC_GetConversionValue(ADC1); //返回最近一次ADC1规则组的转换结果
( p4 f* F' e/ r# ?& }}9 i2 R; @! `3 m" {/ |8 v
9 i' h1 w7 A9 V/****************************************************************************6 S. d/ l. O3 f( a$ ]
* 名 称: u16 Get_Adc_Average(u8 ch,u8 times) . h/ ?$ o6 ]3 v' C, j+ R/ C
* 功 能:获取通道ch的转换值,取times次,然后平均
! y: m7 \( B2 \8 Y4 E" _* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_3
" e" v6 m2 K( k( v* times:获取次数
/ o8 F8 ]" F" G4 F" J6 B* 返回参数:通道ch的times次转换结果平均值
' T5 i+ U' G7 T9 D* 说 明: 4 i6 D9 j$ b8 r2 S% C' N
****************************************************************************/. J" ~+ d& R/ ? b# D
u16 Get_Adc_Average(u8 ch,u8 times)4 j: R5 Y" |( ?: P: G7 [8 {, f
{
# w. h$ b' q# i" c" P0 Y u32 temp_val=0;
& \- `- i4 v+ D$ C- Q) b u8 t;
+ Z+ e) b; S3 b5 u, y$ j for(t=0;t<times;t++)+ L( a& R) q( _' o/ G
{* J; j4 o$ L& ?+ n( T
temp_val+=Get_Adc(ch);
/ r* n/ R0 G9 @ bsp_DelayMS(1);
. n: W$ l) |6 ~6 j3 C }& Z) j/ U* t* X, k8 [* @6 Y- f
return temp_val/times;7 x4 |' z8 z3 M" k, U
}
3 X" o+ ]0 z. q* w! d- I
" m6 B3 ^( s! k2 u2 J' c
" W2 t; r$ n" Q# ~; Z) Z. K1 T5 |* T
# V4 K. n! T+ L+ ^
. A% v/ @0 U, T4 j* V: h
2 `6 q6 h4 O: o2 l7 B, J
9 ?( p, y$ U2 O# [0 C
* H3 {! E$ _% u1 v4 d
6 F* {; ^. }0 }. O) k4 m# B5 T+ F, X! g' _; N
4 r0 U; b* F+ Z1 O) x) |8 E
. j( s5 a3 o9 p4 O d- f. ^2 [& _
& z0 b! {; a7 t% m$ ~
1 z) f4 n. _, } O K
$ V2 ]: p2 l) n3 O |
|