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;
更多回帖