一、库函数配置ADC时,必须先使能ADC_Cmd再去进行ADC寄存器的校正!要注意
......
ADC_Cmd(ADC1,ENABLE); //ADC校准寄存器之前要先使能ADC
ADC_ResetCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));
......
二、STM32内部参考电压校正问题(以STM32F103为例)
VDDA随着供电电压发生改变,会导致ADC值有误
STM32内部还存在一个内部参考电压,根据数据手册提供信息,该值在1.2V左右,因此可以
通过读取内部参考电压的值进行VDDA校正(ADC1的Channel_17)。
Vrefint内部参考电压不会随着供电电压发生变化,STM32也可以进行参考电压Vrefint的ADC值采集。
计算公式:ADC_Vrefint / 4095 = 1.2 / VDDA ;计算得出VDDA
ADC_Value / 4095 = Value / VDDA ;
带入VDDA可得:Value = ADC_Value * 1.2 / ADC_Vrefint. 方法要记得。
三、关于DMA_BufferSize的理解
在设置DMA_MemoryBaseAddr时,所定义的数组数据类型一定与DMA_PeripheralDataSize和DMA_MemoryDataSize进行相匹配、