|
读取ADC转换值6 q: i6 {/ U$ m7 _
设置规则序列通道以及采样周期的库函数是:% C; A9 f7 P/ f! _, ^- l- ]/ |
void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t
% y# V3 C: q+ J V# RADC_Channel,uint8_t Rank, uint8_t ADC_SampleTime);1 d, t1 o& N5 Q2 @
3 _* }8 X" f$ k }
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_239Cycles5 );
5 J( w6 j4 Z4 }$ C ]' |* d$ a f( v/ W- [
设置好规则序列通道及采样周期,接下来就要开启转换,由于我们采
/ k0 w: `/ H* F8 x: l- [用的是软件触发,库函数! K4 k4 [( c# a# k) Z
void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);) P6 S5 _$ j0 _7 t8 S/ y# T
1 r+ C# N6 D) a2 H! ?, V6 V
开启转换之后,就可以获取ADC 转换结果数据,调用的库函数是:
& J4 C8 P7 l0 S& M6 @8 I0 buint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx);
4 p8 O Z' u, e3 M) [8 E4 [5 M' C3 b6 u! H9 \+ {
获取 AD 转换的状态信息的库函数是:
0 s: x# m9 x1 G, aFlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t* ~: Z1 h: n+ _$ k
ADC_FLAG);
4 R: n Q9 ^0 {) Z$ G! l7 j3 P5 A9 S$ b2 f
例如我们要判断 ADC1 的转换是否结束,方法是:7 f: E3 ~& C1 M: C
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
7 K. s. u* k2 L, m9 I' O7 ~ S————————————————1 }$ {$ \ X8 {
6 ~' G+ t! ]4 t# T( y: p& w% @# Z( V; M
|
|