7 ADC
模拟信号必须转换成数字量后才能输入到单片机中进行处理。如果输入非电的模拟信号,如温度,压力等物理量,还需要通过传感器转换成模拟电信号,如果是小信号还需要加接放大器,然后再转换成数字量输入到单片机中。实现模拟量转换成数字量的器件称为模/数转换器(ADC)
ADC有很多重要指标,需要着重说一下分辨率:对于ADC来说,分辨率表示输出数字量变化一个相邻的数据码所需要输入模拟电压的变化量,反映了ADC对输入模拟信号最小变化的分辨能力。ADC的分辨率定义为满刻度电压与2的n此方的比值,其中n为ADC的位数。例如12位的ADC能够分辨出满刻度的1/2的12次方(0.0244140625%)的输入电压的变化。一个满刻度10v的12位ADC能够分辨输入电压变化的最小值位2.4mv
ADC分为逐次逼近型,双积分型和电压频率行3种。
固件库函数
ADC_Init
1.ADC_ScanConvMode,这里设置为DISABLE。如果只是用了一个通道的话,DISABLE就可以了,如果使用了多个通道的话,则必须将其设置为ENABLE。
2.ADC_ContinuousConvMode,这里设置为ENABLE,即连续转换。如果设置为DISABLE,则是单次转换。两者的区别在于连续转换直到所有的数据转换完成后才停止转换,而单次转换则只转换一次数据就停止,要再次触发转换才可以。所以如果需要一次性采集1024个数据或者更多,则采用连续转换。
ADC_RegularChannelConfig
示例
//初始化 ADC
//这里我们仅以规则通道为例
//我们默认将开启通道 0~3
void Adc_Init(void