|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
stm32f072,rt-thread 4.0.3,在进行adc1的多个通道采集时候,发现读取顺序必须是11、12、13顺序。改变读取顺序无效,读出的值还是顺序的。
7 i3 b" Y- ^6 i. Q, C7 A- Z7 S- D7 V$ q
& v6 \+ P2 s& W5 u: H按照13、11、12的顺序读取,结果如下;! x5 B, `" O( j6 x$ m% w( v
" D" d6 t/ j( q4 Q; f6 _
rt_uint16_t value, count=0;0 {2 R2 [' p& J; _+ F
rt_uint32_t vol;
% P8 N1 p1 I! Q3 Pwhile (1)
, \4 O! D3 G% f: X{ G" J' w1 H0 W7 M$ G
rt_thread_mdelay(2000);
: @$ R/ v- D4 a0 p/* 读取采样值 /: `* H0 h- C& D
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL13);
* I( [! b4 X$ \3 n2 C/ 转换为对应电压值,采样值为实际输入电压值的一半 /
+ H0 J0 ]8 N% `1 d" {1 } W% Evol = 2 * value * REFER_VOLTAGE / CONVERT_BITS;
: A6 D& l6 z5 m* Y7 t. ~+ u4 Krt_kprintf("the ch13 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
8 D) q1 N M. M/ v4 e7 }8 L/ 读取采样值 /
7 G8 t+ p0 Z! Y8 n6 S Uvalue = rt_adc_read(adc_dev, ADC_DEV_CHANNEL11);
% J" Y* r* X* J5 N/ R3 O& z/ 转换为对应电压值 /3 x* S _8 Q5 K/ G5 x- `$ W
vol = value * REFER_VOLTAGE / CONVERT_BITS;
& s8 \9 G5 J% ?/ wrt_kprintf("the ch11 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);+ K+ H% {9 `7 X/ Q. z( J
/ 读取采样值 / L* ~) s1 b. v$ r4 a1 b: R/ t
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL12);
* D# v6 I! T4 t) f9 w/ 转换为对应电压值 */, M! W3 X3 C8 D
vol = value * REFER_VOLTAGE / CONVERT_BITS;7 K* A# Q+ @6 u a
rt_kprintf("the ch12 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);" \3 s( Z- Y% b
if (count < RT_UINT16_MAX): A# T2 K8 x+ Q& b
count++;
. ^: Y9 x: W4 Aelse
( I) }2 f9 a! h8 Ucount = 0;" J* Y% g- r$ s
|
|