OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4077|回复: 3

PM2.5传感器GP2Y1014AU使用提问

[复制链接]

5

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-2-22
在线时间
10 小时
发表于 2019-9-2 11:42:11 | 显示全部楼层 |阅读模式
1金钱
这是我写的程序pm25.c
#include "pm25.h"
#include "adc.h"
#include "delay.h"
//#include "gpio.h"

void LED_pm25(uint8_t num)
{
    if(num == 1)
        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2, GPIO_PIN_SET);
    else
        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2, GPIO_PIN_RESET);
}

// **********************************************************
// 获取数字量
uint16_t PM25_Get_ADC(void)
{
    HAL_ADC_Start(&hadc1);                                //开启ADC
   
    HAL_ADC_PollForConversion(&hadc1,10);                //轮询转换
   
    return (uint16_t)HAL_ADC_GetValue(&hadc1);            //返回最近一次ADC1规则组的转换结果
}
//计算模拟量

float PM25_Get_PPM(void)
{
    uint16_t A_value;
    float D_value;
   
    LED_pm25(1);                //打开红外二极管
    delay_us(280);                //延时280us,延时时间到才进行采样
    A_value = PM25_Get_ADC();    //采样,读取AD值,此过程耗时7us
    delay_us(33);                //延时33us,280+7+33=320us,这是LED亮灯的最短时间
    LED_pm25(0);                //关闭红外二极管
    delay_us(9680);                //延时9680us,320+9680=10000us=10ms,这是一个周期的最短时间
   
//    D_value = A_value*0.17-0.1;        //公式一
   
    D_value = A_value*(3.3f/4096)*2;
    D_value = (0.17f*D_value-0.1f)*1000;//公式二
   
    return (D_value );
}

这是我写的程序main
printf("PM2.5:%f mg/m3\n",PM25_Get_PPM());//计算粉尘浓度并通过串口打印


这是cubemx设置


但是,我得到的非常奇怪的值:

感觉这些负值时没有接收到ad值,但是我不知道怎么修改程序,希望能得到解答
1213884879@qq.com


最佳答案

查看完整内容[请看2#楼]

这是我接收到的数据,这些负数是什么情况 [11:34:51.022]收←◆check!! PM2.5:-95.069336 mg/m3 [11:34:52.051]收←◆PM2.5:-98.904297 mg/m3 [11:34:53.061]收←◆PM2.5:-99.178223 mg/m3 [11:34:54.071]收←◆PM2.5:-100.000000 mg/m3 [11:34:55.091]收←◆PM2.5:-100.000000 mg/m3 [11:34:56.101]收←◆PM2.5:431.689941 mg/m3 [11:34:57.111]收←◆PM2.5:-100.000000 mg/m3 [11:34:58.121]收← ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-2-22
在线时间
10 小时
 楼主| 发表于 2019-9-2 11:42:12 | 显示全部楼层
这是我接收到的数据,这些负数是什么情况
[11:34:51.022]收←◆check!!
PM2.5:-95.069336 mg/m3

[11:34:52.051]收←◆PM2.5:-98.904297 mg/m3

[11:34:53.061]收←◆PM2.5:-99.178223 mg/m3

[11:34:54.071]收←◆PM2.5:-100.000000 mg/m3

[11:34:55.091]收←◆PM2.5:-100.000000 mg/m3

[11:34:56.101]收←◆PM2.5:431.689941 mg/m3

[11:34:57.111]收←◆PM2.5:-100.000000 mg/m3

[11:34:58.121]收←◆PM2.5:-100.000000 mg/m3

[11:34:59.136]收←◆PM2.5:354.716797 mg/m3

[11:35:00.145]收←◆PM2.5:-100.000000 mg/m3

[11:35:01.155]收←◆PM2.5:417.993622 mg/m3

[11:35:02.165]收←◆PM2.5:-99.726074 mg/m3

[11:35:03.185]收←◆PM2.5:-100.000000 mg/m3

[11:35:04.195]收←◆PM2.5:-100.000000 mg/m3
回复

使用道具 举报

109

主题

5562

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10541
金钱
10541
注册时间
2017-2-18
在线时间
1908 小时
发表于 2019-9-2 15:35:23 | 显示全部楼层
帮顶~~
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2023-3-30
在线时间
1 小时
发表于 2023-3-31 14:25:30 | 显示全部楼层
楼主,你解决问题了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 12:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表