【STM32】stm32f030软件触发多通道ADC扫描采样

软件触发采集三个通道的AD数据,代码如下:

void read_ADC_voltage()
{
	uint8_t i;

	HAL_ADC_Start(&hadc);     //启动ADC转换

	for(i = 0; i < 3; i++)
	{		
		HAL_ADC_PollForConversion(&hadc, 50);   //等待转换完成,50为最大等待时间,单位为ms

		if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc), HAL_ADC_STATE_REG_EOC))
		{
			AD_val[i] = HAL_ADC_GetValue(&hadc);   //获取AD值
		}		
	}	
	HAL_ADC_Stop(&hadc);		
}

测试过程中发现采集到的数据总是不正确,于是将ADC的Discontinuous Conversion Mode选项配置为Enabled,问题解决。
【STM32】stm32f030软件触发多通道ADC扫描采样_第1张图片

你可能感兴趣的:(笔记,stm32,单片机,嵌入式硬件)