ADC基础概念
DC的各个通道的A/D转换可以单次、连续、扫描或间断模式执行。
A/D转换结果以左对齐或右对齐的方式,存储在16位规则组或者注入组数据寄存器中。
按照A/D转换的组织形式来划分,ADC的模拟输入通道分为规则组和注入组两种。
ADC可以对一组最多16个通道按照指定的顺序逐个进行转换,这组指定的通道称为规则组。
在实际应用中,可能需要中断规则组的转换,临时对某些通道进行转换,这些通道注入了原来的规则组,故称注入组,最多由4个通道组成。
ADC有关的HAL库函数
查询方式(阻塞式的A\D转换)
用查询的方式,进行一次A/D采样并将结果读出。
uint16_t ADC_Value = 0;//定义变量,接收返回的结果
HAL_ADC_Start(&hadc);//启动ADC
if(HAL_OK == HAL_ADC_PollForConversion(&hadc1,10))//等待A\D转换完成
{
ADC0_Value = HAL_ADC_GetValue(&hadc1);//读出采样结果
}
中断方式(非阻塞式的A\D转换)
uint16_t ADC_Value = 0;//定义变量,用于接收
HAL_ADC_Start_IT(&hadc);//中断的方式启动ADC
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)//重写ADC转换完成中断回调函数
{
ADC0_Value = HAL_ADC_GetValue(&hadc1);
}