STM32平台下GP2Y1010AU0F灰尘传感器使用及源码是什么
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,今天就跟大家聊聊有关STM32平台下GP2Y1010AU0F灰尘传感器使用及源码是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。GP2Y1
千家信息网最后更新 2024年11月20日STM32平台下GP2Y1010AU0F灰尘传感器使用及源码是什么
今天就跟大家聊聊有关STM32平台下GP2Y1010AU0F灰尘传感器使用及源码是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
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输出波形
获取到灰尘数值。
根据上图推算出公式:dustDensity = 0.17 * calcVoltage - 0.1。
看完上述内容,你们对STM32平台下GP2Y1010AU0F灰尘传感器使用及源码是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
灰尘
模式
工作
传感器
内容
通道
平台
源码
信号
外设
寄存器
模数
输入
输出
最大
上图
中指
代码
公式
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发项目技术方案怎么写
oa办公软件开发委托合同
金税三期服务器异常
山东省网络安全专业技术学院
软件开发合同补充协议范本
安全数据库的作用
获客系统软件开发
最新计算机网络技术数据信息
服务器管理器 开机
万域城软件开发
搭建数据库后台
钱海网络技术科技有限
静态web服务器面向对象
统计学生数据库中总人数
徐州智能化联想服务器
档案与网络安全
深正道町互联网科技有限公司
丰台区信息网络技术推广好处
导出excel到服务器
实验四 数据库安全
软件开发行业缺人
池州软件开发培训哪家靠谱
扣掉服务器主板上的cmos电池
武汉 软件开发 薪资
plsql数据库开发
crsp 数据库
乐器调音软件开发
宁河软件开发价格实惠
南京软件开发信息推荐
远程服务器ip定时报送