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/ Yrt_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: Fvalue = 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 srt_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 mvol = 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/ jelse7 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