|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
stm32f072,rt-thread 4.0.3,在进行adc1的多个通道采集时候,发现读取顺序必须是11、12、13顺序。改变读取顺序无效,读出的值还是顺序的。
) \: c s \. T* \3 v5 J2 a/ Y) ]3 o, s& M6 [3 a
按照13、11、12的顺序读取,结果如下;. G1 ]4 X4 y, Z' J* W% Q# n
1 Y! u( N; ^3 ~9 D2 ?; l
rt_uint16_t value, count=0;
/ f) e, P g5 }( \- D/ l0 Ert_uint32_t vol;
5 w; T& t* J% Y( Owhile (1)) p7 f& ?& i: N' ~
{+ `6 @+ c5 i- E5 b+ |: Z' C! S9 D
rt_thread_mdelay(2000);5 \6 e9 N% H0 Z6 z3 Y3 L
/* 读取采样值 /
+ H% y0 H1 F; H! I' nvalue = rt_adc_read(adc_dev, ADC_DEV_CHANNEL13);
' n" t; C# C0 l, C& ?/ 转换为对应电压值,采样值为实际输入电压值的一半 /- w0 |$ v& }0 x, \& |# w
vol = 2 * value * REFER_VOLTAGE / CONVERT_BITS;7 }+ w2 n) u4 ~8 ~- S% ^
rt_kprintf("the ch13 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);) Q- h7 w: W2 Y8 G4 X; G
/ 读取采样值 /; B, T2 T6 y& C" R' Z# M, [, q5 N
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL11);+ X7 C) b% w% T/ F" m
/ 转换为对应电压值 /
; s& s7 }9 K$ i0 Z5 wvol = value * REFER_VOLTAGE / CONVERT_BITS;
' H3 T- P' ]3 g7 U* ~" Frt_kprintf("the ch11 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);5 _1 G# \% `8 v* w8 \) u: r" d4 @
/ 读取采样值 /
8 ]( \/ g$ K2 O% D0 Wvalue = rt_adc_read(adc_dev, ADC_DEV_CHANNEL12);. E: a; E4 o+ h. n4 @- X* o& K
/ 转换为对应电压值 */
6 P# a, U: R% B+ Lvol = value * REFER_VOLTAGE / CONVERT_BITS;6 P6 W, ?, {3 p! @/ J& ]" g
rt_kprintf("the ch12 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
2 X" e- r4 Q' p5 n. P3 Vif (count < RT_UINT16_MAX)# N% `, h/ v, _+ S3 w ]7 {! g
count++;
4 N" [) P$ q4 w4 g$ n4 _* relse
3 u4 a9 V: a' w, ]9 k7 F( V( _' Zcount = 0;
) n( T3 r/ {! A2 ^: m8 ^: p S |
|