第六章 ADC转换
6.1模数转换器(ADC)概述
ADC:Analog to Digital Converter
将时间和幅值连续的模拟量转化为时间和幅值离散的数字量,A/D转换一般要经过采样、保持、量化、编码4个过程。
A/D转换的几个技术指标
量程:指ADC所能输入模拟信号的类型和电压范围,即参考电压。信号类型包括单极性和双极性。
转换位数:量化过程中的量化位数n。A/D转换后的输出结果用n位二进制来表示。例如:10位ADC的输出值就是0~1023。
分辨率:ADC能够分辨的模拟信号最小变化量。
分辨率 = 量程/2^n
转换时间:ADC完成一次完整的A/D转换所需要的时间,包括采样、保持、量化、编码4个过程
6.2查询方式和中断方式的HAL库函数应用
1.查询方式,阻塞式A/D转换
Uint16_t ADC_Value = 0;
HAL_ADC_Start(&hadc); //启动ADC
if(HAL_OK == HAL_ADC_PollForConversion(&hadc,10))
//中断读取返回结果
{
ADC_Value = HAL_ADC_GetValue(&hadc);//将读取的值存放在ADC_Value中
//ADC_Value就是我们得到的采样值
}
2.中断方式,非阻塞式A/D转换
Uint16_t ADC_Value = 0;
HAL_ADC_Start_IT(&hadc); //启动ADC
Void HAL_ADC_ConvCpltCallback(ADC_Handle TypeDef* hadc1)
//中断回调函数读取返回结果
{
ADC_Value