|
|
/****************************************************************************
/ I5 P' e2 I+ n1 l1 j* 名 称: u16 Get_Adc(u8 ch)
* m4 b$ ~# A; I+ o* 功 能:获得ADC值
7 b% x9 _% V$ F" h" L* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_3
, O2 ~/ I8 s) h. v7 a6 X' j! I* 返回参数:12位ADC有效值
2 _! E v+ T& r, }' ?: L' L! U* 说 明:
- Z& ^- [3 N; ]: z x; l2 _* O' W2 Q****************************************************************************/
$ b8 z F$ o* ^' }+ ~ Z2 ru16 Get_Adc(u8 ch)
" Q1 j; V6 ^7 c" C2 d{! N. V; ?& N" n9 F+ i1 Z7 I
//设置指定ADC的规则组通道,一个序列,采样时间- {! x* D/ V7 h) A1 h
ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期 + s% ?8 P* ~1 D8 a# M4 ~8 i0 N
3 _8 w6 R1 S; T* d$ |; l
ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的软件转换启动功能 + k' M/ w3 X; i$ R% O
) Z" a7 l0 X3 A$ W- }) A7 T
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束" F$ Q9 A5 b$ r
$ X/ S1 s; b8 y( |- D7 b$ [ return ADC_GetConversionValue(ADC1); //返回最近一次ADC1规则组的转换结果
) d l4 Z8 D( ?; Q' S* U! M}
- H! ?$ V/ q: q0 ^, U" h5 Z+ `1 \; C4 ?3 A! F
/****************************************************************************
* w5 m; {$ Y3 C. r0 u" K) [- L* 名 称: u16 Get_Adc_Average(u8 ch,u8 times) 1 A8 B8 {2 c! h1 o/ W8 `; P3 H
* 功 能:获取通道ch的转换值,取times次,然后平均
0 h# W! H$ T$ r2 R* 入口参数:ch: 通道值 0~3取值范围为:ADC_Channel_0~ADC_Channel_3" _4 Z: `/ l! u- E3 J0 x
* times:获取次数
* Y* T9 g8 k/ t. k# R" R! O* 返回参数:通道ch的times次转换结果平均值
, ^9 `* M) [% ^" ~3 |4 @+ Z0 T* 说 明: 8 _3 x) O# _; z, D5 u; \
****************************************************************************/# e. U; o/ K1 W1 \! K) k
u16 Get_Adc_Average(u8 ch,u8 times)
# g% P: v: j ^5 R$ i3 e: q" W{: p0 |" P( U# ?) j
u32 temp_val=0;
! F5 e3 O- I4 X u8 t;% {) r: {$ s( X6 o
for(t=0;t<times;t++)
& Q4 a/ M9 F) n {
8 x: f5 L, O" S" Z# M) U6 R temp_val+=Get_Adc(ch);
! Q+ V. e. a9 L- A* v: K bsp_DelayMS(1);
& E; u' x( _( k1 y }
2 y! s9 `3 _# H$ J4 m- C: W return temp_val/times;
" P9 g1 ^: c3 p! p7 v; K} 1 I" Z D: a1 [9 B4 F6 x" h
/ N) e+ V, a( P1 k! ?$ f
- o) J3 i% O8 R1 B, ?2 |
8 k0 }) F& ^4 v1 o m: i
V& O1 X1 k* X- G$ G u" a& C
" R+ y4 C2 J; J" L; z4 G8 ?% F3 c4 `, z
* M+ H( t( C4 i K( W8 Y
; {9 S) D1 \8 `% w+ @
/ _5 f- {8 M0 _! _0 [9 d, @. q# E
9 E1 _0 u: U$ T$ x2 x- [4 r. U$ a: z0 h; u7 a" l z/ g
- D6 W" N) i$ V3 R2 _7 ]
7 ~8 B* u; F2 S0 a" ~8 K0 e+ J7 {; O! n
- i' N. {; |5 K# J7 d; C6 J1 c4 d
; ]3 j4 m! d7 }/ d* H! T/ W3 x |
|