91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

STM32平臺下GP2Y1010AU0F灰塵傳感器使用及源碼是什么

發布時間:2022-01-06 15:26:03 來源:億速云 閱讀:326 作者:柒染 欄目:互聯網科技

今天就跟大家聊聊有關STM32平臺下GP2Y1010AU0F灰塵傳感器使用及源碼是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

GP2Y1010AU0F傳感器接線方式如下:

STM32平臺下GP2Y1010AU0F灰塵傳感器使用及源碼是什么

STM32平臺下GP2Y1010AU0F灰塵傳感器使用及源碼是什么

使用PA0接收模擬信號,PB1發送脈沖信號。

代碼如下:

GP2Y.c

#include "GP2Y.h"
#include "system.h"
	u16 AD_PM;
void GP2Yinit(void)
{ 
//定義變量
    ADC_InitTypeDef A_InitStructure;
    GPIO_InitTypeDef G_InitStructure;	//PA0
    GPIO_InitTypeDef Gpio_InitStructure;//PB1
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1 , ENABLE );   //使能ADC2通道時鐘
     
    RCC_ADCCLKConfig(RCC_PCLK2_Div6);   //設置ADC分頻因子6 72M/6=12,ADC最大時間不能超過14M
 
    //PA0 作為模擬通道輸入引腳                        
    G_InitStructure.GPIO_Pin = GPIO_Pin_0;
    G_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模擬輸入引腳
    GPIO_Init(GPIOA, &G_InitStructure);
   
    ADC_DeInit(ADC1);  //復位ADC1,將外設 ADC1 的全部寄存器重設為缺省值
   
    A_InitStructure.ADC_Mode = ADC_Mode_Independent; //ADC工作模式:ADC1和ADC2工作在獨立模式
    A_InitStructure.ADC_ScanConvMode = DISABLE; //模數轉換工作在單通道模式
    A_InitStructure.ADC_ContinuousConvMode = DISABLE; //模數轉換工作在單次轉換模式
    A_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //轉換由軟件而不是外部觸發啟動
    A_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //ADC數據右對齊
    A_InitStructure.ADC_NbrOfChannel = 1; //順序進行規則轉換的ADC通道的數目
    ADC_Init(ADC1, &A_InitStructure); //根據ADC_InitStruct中指定的參數初始化外設ADCx的寄存器  
   
   
    ADC_Cmd(ADC1, ENABLE);         //使能指定的ADC1
    ADC_ResetCalibration(ADC1); //使能復位校準 
    while(ADC_GetResetCalibrationStatus(ADC1)); //等待復位校準結束
    ADC_StartCalibration(ADC1);  //開啟AD校準
    while(ADC_GetCalibrationStatus(ADC1));  //等待校準結束
    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;
}
void GetGP2Y(void)
{
	float 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; //電壓-灰塵轉換
	printf("%f\n",pm);	
}

GP2Y.h

  #ifndef __GP2Y_H
#define __GP2Y_H
#include "stm32f10x_lib.h"
#define GP2Y_High GPIO_SetBits(GPIOB,GPIO_Pin_1);
#define GP2Y_Low  GPIO_ResetBits(GPIOB,GPIO_Pin_1);

void GP2Yinit(void);
void GetGP2Y(void);
#endif

PB1輸出波形

STM32平臺下GP2Y1010AU0F灰塵傳感器使用及源碼是什么

獲取到灰塵數值。

STM32平臺下GP2Y1010AU0F灰塵傳感器使用及源碼是什么

STM32平臺下GP2Y1010AU0F灰塵傳感器使用及源碼是什么

根據上圖推算出公式:dustDensity = 0.17 * calcVoltage - 0.1。

看完上述內容,你們對STM32平臺下GP2Y1010AU0F灰塵傳感器使用及源碼是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凉城县| 江山市| 安乡县| 珲春市| 凤翔县| 绥中县| 乌兰察布市| 广德县| 阿拉善盟| 读书| 彭山县| 灵山县| 胶州市| 客服| 绵竹市| 南丰县| 石家庄市| 天水市| 蓬安县| 柳林县| 平阴县| 洱源县| 曲麻莱县| 上高县| 苏尼特右旗| 中方县| 越西县| 横山县| 昭苏县| 涿州市| 凤翔县| 海南省| 松江区| 乾安县| 古交市| 洱源县| 分宜县| 延吉市| 潼关县| 德兴市| 皮山县|