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 */
}

浙公网安备 33010602011771号