|
读取ADC转换值
: [- n+ f7 r# M2 i$ ?9 T& G设置规则序列通道以及采样周期的库函数是:
; S) @! S0 N; z v' o7 @void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t* o( }: P5 r5 ^2 o, E1 O) E. G) d
ADC_Channel,uint8_t Rank, uint8_t ADC_SampleTime);3 o J: T* G% u. ^$ F( ^1 l
: Z( F# p) d4 x* I1 d gADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_239Cycles5 );( b% t2 T3 O L8 |3 K5 `. z
) A& ] L9 r" f- ?& j6 l6 C. L' i2 G设置好规则序列通道及采样周期,接下来就要开启转换,由于我们采9 ~. O J4 A* B8 ~. c
用的是软件触发,库函数7 s, y4 I& m$ A" Q2 \( L
void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);0 U: d: C8 k [1 t( @% ?$ B, h$ y1 d
& R/ P, f6 `/ P: ?. x& z. T
开启转换之后,就可以获取ADC 转换结果数据,调用的库函数是:) k. _/ }- A% U& g1 S, [
uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx);7 V, @, D/ z/ G. F2 L) w2 t
& h( R: h: @3 y6 y' @: g$ Y. n7 B获取 AD 转换的状态信息的库函数是:6 T' j8 l, `6 A' H* q2 l- |: a
FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t$ t, t! k0 ]! D" S
ADC_FLAG);
: k) c ?" z: i1 T4 [" @3 t, u; @# B1 Y* z
例如我们要判断 ADC1 的转换是否结束,方法是:
- w; ?7 i: N) w# ]! ~0 U5 h' Gwhile(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
% f. v5 [$ N, ^& `* d* L. b: Q————————————————
# z% L: A( F2 l6 M* d, b* e5 z: I
3 R: s+ J$ Y4 M0 \* @
$ _) q3 G3 H/ u8 B1 b$ w |
|