xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 24KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2022-08-08
  • 語言: 其他
  • 標(biāo)簽: stm32??

資源簡介

GP2Y1010AU0F PM2.5 傳感器 于STM32單片機(jī)的工程文件。

資源截圖

代碼片段和文件信息

?#include?“adc.h“
?#include?“delay.h“
???
???
//初始化ADC
//這里我們僅以規(guī)則通道為例
//我們默認(rèn)將開啟通道0~3

void??Adc_Init(void)
{?
ADC_InitTypeDef?ADC_InitStructure;?
GPIO_InitTypeDef?GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA?|RCC_APB2Periph_ADC1 ?ENABLE?); ??//使能ADC1通道時鐘
?

RCC_ADCCLKConfig(RCC_PCLK2_Div6);???//設(shè)置ADC分頻因子6?72M/6=12ADC最大時間不能超過14M

//PA1?作為模擬通道輸入引腳?????????????????????????
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AIN; //模擬輸入引腳
GPIO_Init(GPIOA?&GPIO_InitStructure);
??
//PB1?作為脈沖輸出引腳???
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_1; ?????????????????
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;???????????
GPIO_Init(GPIOB?&GPIO_InitStructure);
GP2Y_High;

ADC_DeInit(ADC1);??//復(fù)位ADC1將外設(shè)?ADC1?的全部寄存器重設(shè)為缺省值

ADC_InitStructure.ADC_Mode?=?ADC_Mode_Independent; //ADC工作模式:ADC1和ADC2工作在獨(dú)立模式
ADC_InitStructure.ADC_ScanConvMode?=?DISABLE; //模數(shù)轉(zhuǎn)換工作在單通道模式
ADC_InitStructure.ADC_ContinuousConvMode?=?DISABLE; //模數(shù)轉(zhuǎn)換工作在單次轉(zhuǎn)換模式
ADC_InitStructure.ADC_ExternalTrigConv?=?ADC_ExternalTrigConv_None; //轉(zhuǎn)換由軟件而不是外部觸發(fā)啟動
ADC_InitStructure.ADC_DataAlign?=?ADC_DataAlign_Right; //ADC數(shù)據(jù)右對齊
ADC_InitStructure.ADC_NbrOfChannel?=?1; //順序進(jìn)行規(guī)則轉(zhuǎn)換的ADC通道的數(shù)目
ADC_Init(ADC1?&ADC_InitStructure); //根據(jù)ADC_InitStruct中指定的參數(shù)初始化外設(shè)ADCx的寄存器???

??
ADC_Cmd(ADC1?ENABLE); //使能指定的ADC1

ADC_ResetCalibration(ADC1); //使能復(fù)位校準(zhǔn)??
?
while(ADC_GetResetCalibrationStatus(ADC1)); //等待復(fù)位校準(zhǔn)結(jié)束

ADC_StartCalibration(ADC1); ?//開啟AD校準(zhǔn)
?
while(ADC_GetCalibrationStatus(ADC1)); ?//等待校準(zhǔn)結(jié)束
?
// ADC_SoftwareStartConvCmd(ADC1?ENABLE); //使能指定的ADC1的軟件轉(zhuǎn)換啟動功能



} ??
//獲得ADC值
//ch:通道值?0~3
u16?Get_Adc(u8?ch)???
{
?? //設(shè)置指定ADC的規(guī)則組通道,一個序列,采樣時間
ADC_RegularChannelConfig(ADC1?ch?0?ADC_SampleTime_239Cycles5?); //ADC1ADC通道采樣時間為239.5周期 ?? ????
??
ADC_SoftwareStartConvCmd(ADC1?ENABLE); //使能指定的ADC1的軟件轉(zhuǎn)換啟動功能
?
while(!ADC_GetFlagStatus(ADC1?ADC_FLAG_EOC?));//等待轉(zhuǎn)換結(jié)束

return?ADC_GetConversionValue(ADC1); //返回最近一次ADC1規(guī)則組的轉(zhuǎn)換結(jié)果
}

float?GetGP2Y(void)
{
????u32?AD_PM;??
??double?pm;?
????GP2Y_Low;
????delay_us(280);
????AD_PM?=?Get_Adc(ADC_Channel_0); //PA0
????delay_us(40);
????GP2Y_High;
????delay_us(9680);
????pm?=?0.17*AD_PM-0.1;?//轉(zhuǎn)換公式
????printf(“%f\n“pm);
return?pm;
}?

u16?Get_GP2Y_Average(u8?times)
{
u32?pm_val=0;
u8?t;
for(t=0;t {
pm_val+=GetGP2Y();
delay_ms(5);
}
return?pm_val/times;
}?
































?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2870??2016-05-28?13:25??HARDWARE\ADC\adc.c

?????文件????????273??2016-05-28?12:59??HARDWARE\ADC\adc.h

?????文件??????35016??2016-03-07?04:44??HARDWARE\LCD\FONT.H

?????文件??????83047??2016-05-28?13:00??HARDWARE\LCD\lcd.c

?????文件???????8557??2016-05-28?13:00??HARDWARE\LCD\lcd.h

?????文件????????828??2016-05-28?12:59??HARDWARE\LED\led.c

?????文件????????172??2016-05-28?13:00??HARDWARE\LED\led.h

?????目錄??????????0??2019-04-29?23:02??HARDWARE\ADC

?????目錄??????????0??2019-04-29?23:02??HARDWARE\LCD

?????目錄??????????0??2019-04-29?23:02??HARDWARE\LED

?????目錄??????????0??2019-04-29?23:02??HARDWARE

-----------?---------??----------?-----??----

???????????????130763????????????????????11


評論

共有 條評論