|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
stm32f072,rt-thread 4.0.3,在进行adc1的多个通道采集时候,发现读取顺序必须是11、12、13顺序。改变读取顺序无效,读出的值还是顺序的。, q o- ?8 }4 ~$ Y4 j
- J/ X' |2 b& L5 X/ m
按照13、11、12的顺序读取,结果如下;9 t3 R2 {$ z: s
7 R3 m, |0 M$ h; {8 t; L6 q
rt_uint16_t value, count=0;
. M. h# ?9 F- k8 |rt_uint32_t vol;
0 f$ i% q5 T4 z% nwhile (1)
' a+ O. r8 G, i% ^{
, a! }& j- f9 ~; p$ V& _rt_thread_mdelay(2000);
d3 c4 Z$ X- u7 s: U0 _, {. }3 p/* 读取采样值 /% k: Q2 \4 I0 Y( s
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL13);
: o$ A" c! |6 G( d% N( G/ 转换为对应电压值,采样值为实际输入电压值的一半 /
3 b8 p% ~ c! Y( U: pvol = 2 * value * REFER_VOLTAGE / CONVERT_BITS;
# ^: n9 T" j: h6 \) drt_kprintf("the ch13 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);) Q! Q0 r* t) ^$ S0 \( j
/ 读取采样值 /
& W* j3 ^% G. O# T/ j6 o1 jvalue = rt_adc_read(adc_dev, ADC_DEV_CHANNEL11);9 C( Z- o$ q7 F
/ 转换为对应电压值 /
3 ~4 { }9 b- i2 H& Q3 P( |vol = value * REFER_VOLTAGE / CONVERT_BITS;
! o. U1 v! o7 W6 i' xrt_kprintf("the ch11 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);6 b/ {" w# l0 N" i
/ 读取采样值 /
+ v) p& ~6 J8 ivalue = rt_adc_read(adc_dev, ADC_DEV_CHANNEL12);& Q$ Q4 X) M5 d. w
/ 转换为对应电压值 */
7 n/ |& B) Q9 X- Y2 Y) w: zvol = value * REFER_VOLTAGE / CONVERT_BITS;
* ^5 |! m* m, S$ B( grt_kprintf("the ch12 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
! s6 {) Q2 I L% }5 Q- q+ p* C$ I Nif (count < RT_UINT16_MAX)) n2 u9 x2 J1 a& ^
count++;" f$ ~' t! ~7 o2 h/ B+ @
else6 Z- j% w* Y* c9 l" P+ d4 @
count = 0;& W4 t# M! V$ ]) C; h
|
|