STM32多通道ADC采集时两路ADC输出同一值

问题:轮询采集未成功,两路AD输出值一样

 

 

采样配置没有问题

 

 

最终发现原因为采样代码问题:

没有等待转换结束就直接赋值数组,导致两个数组单元数值为同一AD通道数值

添加如下语句后AD输出回复正常

HAL_ADC_PollForConversion(&hadc1,0xffff);//等待转换结束

 

 (ADC输入:chan1接地         chan0接3.3V)

完整转换代码如下

while (1)
{

for(int i=0;i<2;i++)
{
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,0xffff);//等待转换结束


ADC_value[i]=HAL_ADC_GetValue(&hadc1);
}
HAL_ADC_Stop(&hadc1);
printf("ADC_CHAN0_VALUE=%d\r\n",ADC_value[0]);
printf("ADC_CHAN1_VALUE=%d\r\n",ADC_value[1]);
/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}

posted @ 2022-09-08 10:52  Q馍馍Q  阅读(1123)  评论(1)    收藏  举报