|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
stm32f072,rt-thread 4.0.3,在进行adc1的多个通道采集时候,发现读取顺序必须是11、12、13顺序。改变读取顺序无效,读出的值还是顺序的。
r6 ~- |* _0 P- }) l3 p H% e. L' N9 G) t) h& B! o3 W8 y4 ~
按照13、11、12的顺序读取,结果如下;" L$ z1 [* [' z$ B( n$ W0 y b
8 {5 @7 r+ J1 i. {1 @rt_uint16_t value, count=0;* X9 Y L( s1 ~2 i0 U7 B- e: @ P# C
rt_uint32_t vol;! o) f6 ~# q( G2 u D& x& `1 y
while (1)9 C& S* r( D0 A. t! J
{9 u( _' W. Q& B* I% o
rt_thread_mdelay(2000);
5 D" g$ U: L6 s7 v/* 读取采样值 /7 N- ~- u- m& x; P4 f/ q7 v
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL13);4 T1 h" b% b$ ?% s6 v9 f
/ 转换为对应电压值,采样值为实际输入电压值的一半 /( W6 j9 Z! a0 V* x; X4 r4 j n
vol = 2 * value * REFER_VOLTAGE / CONVERT_BITS;5 V2 R1 j2 s8 t3 a
rt_kprintf("the ch13 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
8 _% K3 _8 V7 ]% b% r9 Z/ l/ 读取采样值 /
) v. t. G2 c# @7 Ivalue = rt_adc_read(adc_dev, ADC_DEV_CHANNEL11);0 c% _. V2 Q8 ~9 v% N% Z
/ 转换为对应电压值 /
5 M! H. ^' h8 a K' Yvol = value * REFER_VOLTAGE / CONVERT_BITS;# `/ G1 J) I2 i
rt_kprintf("the ch11 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);2 X& d- j5 Q9 ]: _6 e2 D- \" r
/ 读取采样值 /
! B* d* ^6 k, s& L5 a; l; vvalue = rt_adc_read(adc_dev, ADC_DEV_CHANNEL12);
% d( d1 R- K9 ?! R% C( S" \/ 转换为对应电压值 */* I+ k* D4 w; K4 @0 B; I X
vol = value * REFER_VOLTAGE / CONVERT_BITS;1 h" s$ O9 o C: n8 ^
rt_kprintf("the ch12 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
( i/ i2 v' u! |2 i2 ~7 @; dif (count < RT_UINT16_MAX)0 G, T! } O7 p8 u' l2 I
count++;
: k q; o4 [) _8 Q5 telse: x0 ~ z/ v, t0 B% d
count = 0;3 E; x7 O/ e2 q3 }
|
|