EDA365电子论坛网
标题:
为什么adc多通道同时采集读取顺序会修改无效呢
[打印本页]
作者:
abc66
时间:
2022-9-6 13:30
标题:
为什么adc多通道同时采集读取顺序会修改无效呢
stm32f072,rt-thread 4.0.3,在进行adc1的多个通道采集时候,发现读取顺序必须是11、12、13顺序。改变读取顺序无效,读出的值还是顺序的。
2 H3 k) r9 E9 i+ ^. V5 r; s
7 w* K3 Q- I# S+ J6 r
按照13、11、12的顺序读取,结果如下;
- C1 x8 |* \7 Q7 L
! T5 F- ?( u3 D5 p; y' M8 ^- p: D* O! g/ Y
rt_uint16_t value, count=0;
1 s5 k' Y4 b" v# y4 k2 \& \
rt_uint32_t vol;
* _# g7 y: u1 f9 _6 p. V& v- I4 X
while (1)
! w" v2 v0 y1 d* M L
{
' K: R* h: q% ^ ~( {
rt_thread_mdelay(2000);
6 v: V7 C" @0 e6 t
/* 读取采样值 /
; P8 O0 j# M7 z: F
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL13);
' H. v, T9 E! |' N- b' K' L, b
/ 转换为对应电压值,采样值为实际输入电压值的一半 /
' v- D8 b0 g0 Q1 Z& J8 }
vol = 2 * value * REFER_VOLTAGE / CONVERT_BITS;
% L( _/ ?7 u* K. v/ Q. D; \4 s
rt_kprintf("the ch13 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
: u4 l* h3 R7 h! F
/ 读取采样值 /
; {+ M# p3 [2 G( N
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL11);
# L/ m+ \+ Q1 x$ a7 @5 e! z- N
/ 转换为对应电压值 /
, i) }! C; |4 C; z, v) J6 ^, r: ~- h
vol = value * REFER_VOLTAGE / CONVERT_BITS;
$ { B4 Q( B3 r8 u. l @! g3 |
rt_kprintf("the ch11 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
/ O9 y: a7 C5 x- x- `: N0 Q+ T0 _
/ 读取采样值 /
6 w9 N3 Q% V4 ~/ d
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL12);
: f' S& @! `1 H( ]6 J5 _
/ 转换为对应电压值 */
! o& d# ~# w5 _4 b3 m
vol = value * REFER_VOLTAGE / CONVERT_BITS;
; I& y8 L& ~2 o2 i' Z9 |
rt_kprintf("the ch12 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
1 z, ]+ g% Q0 ]- _8 ?
if (count < RT_UINT16_MAX)
2 g3 B" P9 j- V
count++;
; h" F2 F0 S3 D. z/ j
else
7 W5 g# I" n4 e; L- m/ q
count = 0;
% s+ p! D+ M3 t8 E
作者:
three
时间:
2022-9-6 14:14
同时读两个通道,两两组合全都试过也没有问题,只有三个才会出现这个现象。
) o3 u' u% T2 |9 G5 w: _
作者:
rergr
时间:
2022-9-6 14:57
在adc多通道使用的时候,配置adc是需要设置采样顺序的吧 你可以检查下配置
4 z8 \7 w) o. L/ F& [
作者:
twel2e
时间:
2022-9-6 15:20
再看看别人是怎么说的
5 N. E% w8 i% J2 s' H
作者:
理论的
时间:
2022-9-6 16:09
同问,求结果
& U2 _( ~$ O/ N' `
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2