打印
[STM32F1]

《st的暑假+PM2.5检测器》

[复制链接]
676|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 ningling_21 于 2019-7-11 20:13 编辑

天气好热,刚刚看到活动却发现马上就要结束了,于是抓紧时间参加一个。
此 检测器采用的芯片是STM32F103C8T6,传感器是PMS5003,还有温湿度一体传感器SHT20(未使用),显示屏12864。

虽然这款芯片引脚不算太多但资源丰富,主频72MHZ,128K-FLASH,20KRAM,ADC,DMA,多达37个快速I/O口,7个定时器,9个通信接口,USART,CAN,USB,IIC,一个都不少。



int main(void)
{

    uint8_t  l_u8_flag_led =0;
   
    uint16_t  i=0;     

        uint16_t u16_temp =0;
        uint16_t u16_humi =0;
         
    /*初始化gpio,*/
    Sys_gpio_init();
RESET:        
        if(flag_sys_off_stat ==0x5a)
        {
                //关机并检测按键
                Init_lcd(0x22);        
                GPIO_SetBits(GPIOB, GPIO_Pin_5) ;        //LCD电源   
               
                GPIO_ResetBits(GPIOB, GPIO_Pin_1) ;        //传感器低功耗控制,低电平休眠
                GPIO_SetBits(GPIOA, GPIO_Pin_1) ;          //RUN
                while(1)
                {
                        key_in_Stat=GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_11);//按键输入
                        if( key_in_Stat<1)
                        {
                                GPIO_ResetBits(GPIOB, GPIO_Pin_5) ;//LCD电源   
                                GPIO_ResetBits(GPIOB, GPIO_Pin_0) ;//背光
                                GPIO_SetBits(GPIOB, GPIO_Pin_1) ;//传感器低功耗控制,低电平休眠
                                GPIO_SetBits(GPIOB, GPIO_Pin_12);  //CS =1;
                                break;
                        }
                }
        }
    /* USART1 config */
    delay_init();   
    //------------------------------------------------------------------
        Init_lcd(0x24);          //LCD对比度调节        
        SET_screen();//显示图片,欢迎画面
        USART2_Config();            //串口2
    NVIC_Configuration();
    /* enable adc1 and config adc1 to dma mode */
    //------------------------------------------------------------------

    Init_data();
        for(i=0;i<50000;i++)
        {
                   u16_pm25=100;
               while(u16_pm25--);
        }
        clr_screen();
        for(i=0;i<5000;i++);                        
    //------------------------------------------------------------------
        //------------------------------------------------------------------
        l32_run_cnt=10000;                        
        while(l32_run_cnt--);
        Disp_lcd_init();
    //------------------------------------------------------------------
    Exti_init();

        Tim2_init();    //        
        l32_run_cnt=0;
        u16_pm25=0;

由于手头没有温湿度传感器所以屏幕没显示当前的温度和湿度,如果换上带温湿度一体的PM2.5传感器则可以显示。



ST的产品线做的越来越广,芯片资源做的越来越丰富,ST发展芝麻开花节节高!






使用特权

评论回复
沙发
一路向北lm| | 2019-7-11 22:17 | 只看该作者
不错啊,赞一个

使用特权

评论回复
评论
ningling_21 2019-7-11 22:21 回复TA
谢谢 
板凳
磨砂| | 2019-8-8 11:42 | 只看该作者
有这种专用传感器吗

使用特权

评论回复
地板
晓伍| | 2019-8-8 11:47 | 只看该作者
精度能达到多少

使用特权

评论回复
5
ningling_21|  楼主 | 2019-8-8 13:34 | 只看该作者
磨砂 发表于 2019-8-8 11:42
有这种专用传感器吗

有只测PM2.5的

使用特权

评论回复
6
捉虫天师| | 2019-8-8 23:26 | 只看该作者
这玩意儿靠谱不

使用特权

评论回复
7
捉虫天师| | 2019-8-8 23:26 | 只看该作者
这玩意儿靠谱不

使用特权

评论回复
8
ningling_21|  楼主 | 2019-8-9 08:43 | 只看该作者

主要看传感器

使用特权

评论回复
9
磨砂| | 2019-8-9 10:51 | 只看该作者

这种传感器的原理是什么啊

使用特权

评论回复
10
ningling_21|  楼主 | 2019-8-9 13:57 | 只看该作者
磨砂 发表于 2019-8-9 10:51
这种传感器的原理是什么啊

颗粒物阻挡光线造成光线散射

使用特权

评论回复
11
磨砂| | 2019-8-12 09:31 | 只看该作者
ningling_21 发表于 2019-8-9 13:57
颗粒物阻挡光线造成光线散射

那如果是大颗粒的话 如何进行滤除呢

使用特权

评论回复
评论
ningling_21 2019-8-12 09:40 回复TA
有PM10和PM2.5两种数据参数输出 
12
ningling_21|  楼主 | 2019-8-12 09:39 | 只看该作者
磨砂 发表于 2019-8-12 09:31
那如果是大颗粒的话 如何进行滤除呢

搞空气净化吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5013

主题

17736

帖子

51

粉丝