GP2Y1014AU粉尘传感器模块 PM2.5灰尘传感器.docx
-
资源ID:76068998
资源大小:10.97KB
全文页数:2页
- 资源格式: DOCX
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
GP2Y1014AU粉尘传感器模块 PM2.5灰尘传感器.docx
.c文件include "PM25.h"#include "sys.h"include "usart.h"ttinclude "delay.h"#include "stm32fl0x_adc.h"ttinclude "stm32flOx_gpio.h"#include "stm32fl0x_rcc.h"void Adc_lnit(void) (ADC_lnitTypeDef ADCJnitStructure;GPIOJnitTypeDef GPIOJnitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB | RCC_APB2Periph_ADCl , ENABLE);/?ADC1?RCC_ADCCLKConfig(RCC_PCLK2_Div6); 设置 ADC 分频因子 6 72M/6=12,ADC 最大时间 不能超过14M/PA1作为模拟通道输入引脚GPIO_lnitStructure.GPIO_Pin = GPIO_Pin_l;GPIO_lnitStructure.GPIO_Mode = GPIO_Mode_AIN;模拟输入引脚GPIO_lnit(GPIOA, &GPIO_lnitStructure);/PB0作为脉冲输出引脚GPIO_lnitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_lnitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_lnitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_lnit(GPIOB, &GPIO_lnitStructure);GP2Y_High;ADC_Delnit(ADCl); 复位ADC1,将外设ADC1的全部寄存器重设为缺省值ADC_lnitStructure.ADC_Mode = ADC_Mode_lndependent; /ADC 工作模式:ADC1 和 ADC2 工作在独立模式ADC_lnitStructure.ADC_ScanConvMode = DISABLE; 模数转换匚作在单通道模式ADC_lnitStructure.ADC_ContinuousConvMode = DISABLE; 模数转换工作在单次转换模 式ADC_lnitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; 转换由软件而 不是外部触发启动ADC_lnitStructure.ADC_DataAlign = ADC_DataAlign_Right; /ADC 数据右对齐ADC_lnitStructure.ADC_NbrOfChannel = 1; 顺序进行规则转换的 ADC 通道的数 HADC_lnit(ADCl, &ADC_lnitStructure); 根据 ADCJnitStruct 中指定的参数初始化外设ADCx的寄存器ADC_Cmd(ADCl, ENABLE); 使能指定的 ADC1ADC_ResetCalibration(ADCl);使能复位校准while(ADC_GetResetCalibratior)Status(ADCl); 等待复位校准结束ADC_StartCalibration(ADCl); 开启 AD 校准while(ADC_GetCalibrationStatus(ADCl); 等待校准结束/ ADC_SoftwareStartConvCmd(ADCl, ENABLE);使能指定的 ADC1 的软件转换启动功 能)获得ADC值ch:通道值03ul6 Get_Adc(u8 ch)(设置指定ADC的规则组通道,一个序列,采样时间ADC_RegularChannelConfig(ADCl, ch, 1, ADC_SampleTime_239Cycles5 ); /ADCADC 通道, 采样时间为239.5周期ADC_SoftwareStartConvCmd(ADCl, ENABLE);使能指定的 ADC1 的软件转换启动功能while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC );等待转换结束return ADC_GetConversionValue(ADCl);返回最近一次 ADC1 规则组的转换结果)float GetGP2Y(void)(u32 AD_PM;double pm;GP2Y_Low;delay_us(280);AD_PM = Get_Adc(ADC_Channel_l); /PAIdelay_us(40);GP2Y_High;delay_us(9680);pm = 0.17*AD_PM-0.1; 转换公式 /printf("%fn",pm);return pm;.h文件#ifndef_PM25_H_ttdefine _PM2S_H_include "stm32flOx.h"ttinclude "sys.h"#define GP2Y_High GPIO_SetBits(GPIOB,GPIO_Pin_(J);#define GP2Y_Low GPIO_ResetBits(GPIOB,GPIO_Pin_0);float GetGP2Y(void);void Adcjnit(void);ul6 Get_Adc(u8 ch);ul6 Get_GP2Y_Average(u8 times);ttendif