嵌入式技术论坛
直播中

jjll652

8年用户 1370经验值
私信 关注
[问答]

为什么adc多通道同时采集读取顺序会修改无效呢

stm32f072,rt-thread 4.0.3,在进行adc1的多个通道采集时候,发现读取顺序必须是11、12、13顺序。改变读取顺序无效,读出的值还是顺序的。

按照13、11、12的顺序读取,结果如下;

rt_uint16_t value, count=0;
rt_uint32_t vol;
while (1)
{
rt_thread_mdelay(2000);
/* 读取采样值 /
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL13);
/
转换为对应电压值,采样值为实际输入电压值的一半 /
vol = 2 * value * REFER_VOLTAGE / CONVERT_BITS;
rt_kprintf("the ch13 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
/
读取采样值 /
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL11);
/
转换为对应电压值 /
vol = value * REFER_VOLTAGE / CONVERT_BITS;
rt_kprintf("the ch11 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
/
读取采样值 /
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL12);
/
转换为对应电压值 */
vol = value * REFER_VOLTAGE / CONVERT_BITS;
rt_kprintf("the ch12 value is :%d, voltage is :%d.%02d \n", value, vol / 100, vol % 100);
if (count < RT_UINT16_MAX)
count++;
else
count = 0;

1.jpg

回帖(2)

张波

2022-8-18 09:47:14
同时读两个通道,两两组合全都试过也没有问题,只有三个才会出现这个现象。
举报

夏夏

2022-8-18 11:38:23
在adc多通道使用的时候,配置adc是需要设置采样顺序的吧  你可以检查下配置
举报

更多回帖

发帖
×
20
完善资料,
赚取积分