|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
stm32f072,rt-thread 4.0.3,在进行adc1的多个通道采集时候,发现读取顺序必须是11、12、13顺序。改变读取顺序无效,读出的值还是顺序的。
$ m, M$ u1 _5 R8 v# q; y- i8 V& y e7 K/ U7 u* A$ E
按照13、11、12的顺序读取,结果如下;& A: _ g% `1 k) }$ v
+ Y, A9 `8 H( Art_uint16_t value, count=0;
( A r: H- _) h) C. @( zrt_uint32_t vol;
- o* t8 P0 U$ F, ~, E n5 Wwhile (1)
/ w2 H: b# j; K6 v{6 E) L" I1 O6 T6 l( B1 P* T
rt_thread_mdelay(2000);- b% z- s( ~8 |
/* 读取采样值 /, a- L7 |. `- r9 `
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL13);
5 Q% P2 C ]! {1 X/ 转换为对应电压值,采样值为实际输入电压值的一半 /' O: T T. b- V. B! ?+ U/ t
vol = 2 * value * REFER_VOLTAGE / CONVERT_BITS;
/ q) E4 F# p; xrt_kprintf("the ch13 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);9 v; B8 F' V0 M. b) G$ A
/ 读取采样值 /
8 K V8 G3 }0 e5 r- Ovalue = rt_adc_read(adc_dev, ADC_DEV_CHANNEL11);
8 n* p' ?+ B/ g2 |8 k" b) G" y; ^/ 转换为对应电压值 /; f& E0 P- H+ l2 G) A* ^0 S5 }6 v
vol = value * REFER_VOLTAGE / CONVERT_BITS;
; T: t: Q3 ^ [' m2 {0 }5 Drt_kprintf("the ch11 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);. x0 W' @6 T/ B
/ 读取采样值 /. M* b% u" }( k/ T" d% [
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL12);
& u6 @! N, l4 z. {6 }! U/ 转换为对应电压值 */
0 i5 P0 i3 E' x# Ovol = value * REFER_VOLTAGE / CONVERT_BITS;
( {4 A1 ?) p$ k, N# `rt_kprintf("the ch12 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);8 r7 g1 e9 V! }( ]' s% Z% `
if (count < RT_UINT16_MAX)3 P& N4 d9 E; k( U
count++;
4 f7 R) ?. V% F6 L: H3 n: g; X6 [else
6 s9 c6 t H6 \: Tcount = 0;. T c$ _4 n* i% e( ~
|
|