|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
stm32f072,rt-thread 4.0.3,在进行adc1的多个通道采集时候,发现读取顺序必须是11、12、13顺序。改变读取顺序无效,读出的值还是顺序的。( a B: l6 n' w' e& F1 K
7 K* i) m% \# ?# ^1 } r
按照13、11、12的顺序读取,结果如下;
/ s& l- T& X" x1 R0 H4 J; |: [7 l# c# K! [1 c
rt_uint16_t value, count=0;6 q6 } _/ M: ~( ~
rt_uint32_t vol;0 t. B8 T1 R0 j2 H$ \! Y! q! U
while (1)4 t4 s" K9 j& d: g/ J
{
( p: Z# [* s4 ]5 [7 `- {" H/ Krt_thread_mdelay(2000);
! O8 r, g O: X- H" `/* 读取采样值 /
! _/ A3 s c5 }0 Y% P# xvalue = rt_adc_read(adc_dev, ADC_DEV_CHANNEL13);
6 ]- R+ O% Z1 @2 D; Q/ 转换为对应电压值,采样值为实际输入电压值的一半 /6 |7 h, F8 _8 n
vol = 2 * value * REFER_VOLTAGE / CONVERT_BITS;; J8 y, |4 U2 g5 p: m
rt_kprintf("the ch13 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
- m4 J+ ^9 C) i- f y4 y- E, U/ 读取采样值 /
# \8 r8 X* {" S" c+ O; [value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL11);* i0 g/ R/ W8 l" }
/ 转换为对应电压值 /$ Y6 H" N2 @* P& k% Z9 O
vol = value * REFER_VOLTAGE / CONVERT_BITS;
' g0 O1 ~+ z) N& e) \- ]4 Brt_kprintf("the ch11 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
% }7 n8 E F# i: {/ 读取采样值 /
% e7 \; g$ ]8 k2 ?# X$ o5 ?' H9 Cvalue = rt_adc_read(adc_dev, ADC_DEV_CHANNEL12); `6 O+ K/ {1 t% Y7 h1 J Y& w
/ 转换为对应电压值 */
: T+ Z+ q/ Z# v0 i4 f1 X; Y" evol = value * REFER_VOLTAGE / CONVERT_BITS;
* Y$ u. r9 X# s; g) \( ~' mrt_kprintf("the ch12 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);1 `7 ^) [6 ~. E, b
if (count < RT_UINT16_MAX)
. q& u) {0 m$ H( P! Ucount++;) k8 X- }: \1 v1 R( d
else
2 T. ]9 F- V$ C+ L0 M" ucount = 0;. w9 v4 N! x! s; ]- Y( V K
|
|