57 lines
1.4 KiB
C

// #include <rtthread.h>
// #include <rtdevice.h>
// #include "math.h"
// #include <board.h>
// #include <drv_gpio.h>
// #ifndef RT_USING_NANO
// #endif /* RT_USING_NANO */
// #define PM25_READ_TIMES 20
// #define GPIO_PIN GET_PIN(G, 5)
// extern float ADC_Read();
// extern float ADC1_Read();
// float PM25_GetData(void)
// {
// int ADCVal;
// int dustVal = 0;
// float Voltage;
// rt_pin_write(GPIO_PIN, PIN_HIGH);//置1 开启内部LED
// rt_hw_us_delay(280);
// ADCVal = ADC1_Read();
// rt_hw_us_delay(25);
// rt_pin_write(GPIO_PIN, PIN_LOW); //置0 关闭内部LED
// rt_hw_us_delay(9680); //需要脉宽比0.32ms/10ms的PWM信号驱动传感器中的LED
// Voltage = 3.3f * ADCVal / 4096.f * 2; //获得AO输出口的电压值
// dustVal = (0.17*Voltage-0.1)*1000; //乘以1000单位换成ug/m3//
// if (dustVal < 0)
// dustVal = 0; //限位//
// if (dustVal>500)
// dustVal=500;
// return dustVal;
// }
// /**
// * @brief 平均值滤波法
// * @param 无
// * @retval 返回滤波后的数据
// */
// float Get_PM25_Average_Data(void)
// {
// float temp_val=0;
// float t;
// for(t=0;t<PM25_READ_TIMES;t++) //#define PM25_READ_TIMES 20 定义读取次数,读这么多次,然后取平均值
// {
// temp_val+=PM25_GetData(); //读取ADC值
// rt_thread_mdelay(5);
// }
// temp_val/=PM25_READ_TIMES;//得到平均值
// return temp_val;//返回算出的ADC平均值
// }