|
|
/****************************************************************************
; q+ D& R- D& P! e/ g* 名 称: u16 Get_Adc(u8 ch)
9 H4 N2 }/ O3 ]$ w4 `* 功 能:获得ADC值
9 B7 D3 F$ O- @0 c" x* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_3' U3 L0 B/ g* O: `. X
* 返回参数:12位ADC有效值! H4 M+ P' h) V7 V' N
* 说 明: * g/ H. v( P7 d S
****************************************************************************/( Z% z: l# x; ^( w
u16 Get_Adc(u8 ch) : W+ M% o+ U3 {7 F- D0 s: d
{
! S. ?# K4 F) d, s; J8 z //设置指定ADC的规则组通道,一个序列,采样时间
9 o+ U8 E/ h+ F2 D ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期
: p. E5 s' Z' k* ]
- J* M( G# O; r0 l! P ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的软件转换启动功能 ! Y/ P9 Q: j3 I
0 Y7 K5 I, O: R$ h while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
: f0 Y' C. y$ Z. G: I
9 V7 f% X Y& X" C% R return ADC_GetConversionValue(ADC1); //返回最近一次ADC1规则组的转换结果
! a9 w* d4 `0 T7 J: Q4 k: }+ I0 c6 s}
" l0 T1 e* _1 f. p# `. O
9 V: K/ V+ M% i" p2 l0 M/****************************************************************************
4 @ E6 Z% ?1 I$ C9 {* 名 称: u16 Get_Adc_Average(u8 ch,u8 times)
5 B1 ~8 |3 I# j3 k2 J* 功 能:获取通道ch的转换值,取times次,然后平均
" h( W- o6 Q$ l) L9 c* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_36 n9 O/ [% e& \
* times:获取次数4 ]+ g( J6 c. I+ J: U8 Z3 l( ^
* 返回参数:通道ch的times次转换结果平均值
; z7 {. Y0 G. q; D4 J4 K* 说 明: 7 \5 P) J4 N; X/ ]* D) s
****************************************************************************// d7 a1 V; q9 n! m7 M$ L* c9 C A
u16 Get_Adc_Average(u8 ch,u8 times)
& {5 V1 p9 `3 ?& V8 ?( P0 D7 Q{
* ?. O; f/ ~* v1 Y; i u32 temp_val=0; D, W; Q/ t8 o0 f% k- E7 z
u8 t;
. L" q2 {& n5 _# N6 e* m, E for(t=0;t<times;t++)2 e1 C3 V3 h, W) \2 _6 c7 g6 o1 d
{
, Q9 ]# o0 S9 P* T, g7 e& G8 e temp_val+=Get_Adc(ch);) Q/ ?% `2 z7 b f3 r; L% e
bsp_DelayMS(1);( w/ w* Q0 g3 n+ L- Y$ l9 y
}
1 M2 _- ]( m( y0 c return temp_val/times;( J1 I) L4 t! ~3 k& e+ X
} 9 f/ o& ~ L. u% y2 f
# ^8 m+ n% k; f" Y/ V' P1 b5 B0 ?
7 H/ m D& i% }, d1 L! F7 S% c" Y
+ v! _; u$ s# e0 g$ r( ~/ a7 H5 p
* o, z5 [" n d6 J3 ^ S1 v* O' h
" E6 _- ^4 a; X/ T
M2 A" ]1 w' \3 U7 R( ~9 x: h8 |# V3 m. ^3 f& v7 o, n7 \3 u
( m) B- ~8 N# F" m N5 x. E& A8 i! ^( [: i$ d2 N
/ x" x! o0 A( |
5 E1 p: ]; P8 }& S1 S0 c
- A ]7 {& G. y/ B& ^. o& s# s7 v1 D) V' R
4 F- Z0 Q3 f4 ], r$ d2 P |
|