u16 ADC_Trans(void) //数据处理,求电压值的平均数
{
u16 adc_value = 0;
u8 i = 0;
for(i = 0; i < 50; i++)
{
ADC_SoftwareStartConvCmd(ADC1,ENABLE);
adc_value = adc_value + ADC_GetConversionValue(ADC1);
}
return adc_value / 50;
}这个是mq2代码,上面还有一部分是adc初始化
原理如下单片机通过adc读取模拟电压,然后通过一系列操作转化为烟雾浓度