|
读取ADC转换值$ r$ M) |& H; Z+ T3 Z3 R4 A0 _
设置规则序列通道以及采样周期的库函数是:0 M6 G$ i6 ?, y' v7 v6 i: `$ U
void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t
" K) o) E$ O9 N4 _/ aADC_Channel,uint8_t Rank, uint8_t ADC_SampleTime);
' R I4 ]6 i9 w4 B' m& ~% D3 { x/ x" O; r. M
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_239Cycles5 );9 ~; f, F* I `3 l8 ?, w
" ~2 F, ?0 c3 g( b2 _/ K
设置好规则序列通道及采样周期,接下来就要开启转换,由于我们采) X: m |$ f$ F% g
用的是软件触发,库函数# C1 ?1 M9 } x
void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);2 y, v8 @$ U) w2 X( k* R
. H1 A9 U J* n) \
开启转换之后,就可以获取ADC 转换结果数据,调用的库函数是:
5 h; | |, i% B) k: p! e: s# Tuint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx);. `$ u" |' C/ O2 m# i" S
, ^4 V5 T F3 ]+ q获取 AD 转换的状态信息的库函数是:
+ X/ R: F) ?6 M, h% Z2 ~/ a& k) wFlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t2 j4 u+ T1 e" Z
ADC_FLAG);
& p# J7 P6 `* r8 d+ n4 s$ `/ \1 s, D! F
8 U: o K' P% K4 b例如我们要判断 ADC1 的转换是否结束,方法是:
: [9 z8 s2 h8 pwhile(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束0 n8 ^- r, q* J q/ S
————————————————
' m+ k: M# A! \0 M0 G
& S5 e3 L( e: |! C4 ?+ k/ X0 f, x! \, U# A; |1 ^" W
|
|