久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STM32F103C8 GP2Y1010AU0F PM2.5空氣質量檢測 [打印本頁]

作者: radcat    時間: 2018-7-22 17:14
標題: STM32F103C8 GP2Y1010AU0F PM2.5空氣質量檢測
PM2.5空氣質量檢測程序源碼,測試通過

單片機源程序如下:
  1. //=============================================================================
  2. //文件名稱:main.h
  3. //功能概要:STM32F103C8核心檢測
  4. //調試方式:J-Link OB ARM SW方式 5MHz
  5. //=============================================================================

  6. //頭文件
  7. #include "stm32f10x.h"
  8. #include "GPIOLIKE51.h"
  9. #include "USART.h"
  10. #include "DHT11.h"
  11. #include "ADC_DMA.h"
  12. #include "systick.h"
  13. #include <stdio.h>

  14. //=============================================================================
  15. //全局變量定義
  16. //=============================================================================
  17. float gp2y1010auof[100];

  18. //=============================================================================
  19. //函數定義
  20. //=============================================================================
  21. void LED_Init(void);//初始呼吸燈
  22. void TIME_Init(void);//初始初始計時器中斷
  23. u32 PM25_Val(void);//pm2.5濃度計算
  24. //=============================================================================
  25. //文件名稱:main
  26. //功能概要:主函數
  27. //參數說明:無
  28. //函數返回:int
  29. //=============================================================================
  30. int main(void)
  31. {
  32.         u16 RxData = 0x00;       
  33.         uchar temp[]={"00.00"};  
  34.         uchar humi[]={"00.00"};
  35.         char szbuffer[32];

  36.         delay_init();//延時函數初始化
  37.         LED_Init();//初始呼吸燈
  38.         TIME_Init();//初始計時器中斷
  39.         USART_Configuration();//USART通迅端口初始化  
  40.         DHT11_Init();//初始化DHT11       
  41.         ADC_DMA_Init();//初始化ADC_DMA
  42.        
  43.         while (1)
  44.         {               
  45.                 RxData = USART_RECV();
  46.                 if(RxData == 0x00)
  47.                 {
  48.                         USART_SEND("測試連接成功\n");
  49.                 }
  50.                 else if(RxData == 0x01)
  51.                 {
  52.                         DHT11_GET_CALCULATE(temp, humi);
  53.                         sprintf(szbuffer, "溫度:%s 濕度:%s\n", temp, humi);
  54.                         USART_SEND(szbuffer);
  55.                 }
  56.                 else if(RxData == 0x02)
  57.                 {
  58.                         sprintf(szbuffer, "空氣質量:%4.2f\n", ADC_DMA_GET_MQ135());
  59.                         USART_SEND(szbuffer);
  60.                 }
  61.                 else if(RxData == 0x03)
  62.                 {
  63.                         sprintf(szbuffer, "粉塵濃度:%d\n", PM25_Val());
  64.                         USART_SEND(szbuffer);
  65.                 }
  66.         }
  67. }

  68. //初始呼吸燈
  69. void LED_Init(void)
  70. {
  71.   GPIO_InitTypeDef GPIO_InitStructure;  
  72.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
  73.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  74.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  75.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  76.   GPIO_Init(GPIOB, &GPIO_InitStructure);
  77. }

  78. //初始計時器中斷
  79. void TIME_Init(void)
  80. {
  81.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  82.         NVIC_InitTypeDef NVIC_InitStructure;        
  83.        
  84.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 , ENABLE);
  85.        
  86.         //((1+TIM_Prescaler )/72M)*(1+TIM_Period )=((1+7199)/72M)*(1+9999)=1秒
  87.         TIM_TimeBaseStructure.TIM_Period = 89;//10ms
  88.         TIM_TimeBaseStructure.TIM_Prescaler =  7199;
  89.         TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  90.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;       
  91.         TIM_TimeBaseInit(TIM3 , &TIM_TimeBaseStructure);       
  92.         TIM_ARRPreloadConfig(TIM3, ENABLE);
  93.         TIM_ClearFlag(TIM3, TIM_FLAG_Update);
  94.   TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
  95.         TIM_Cmd(TIM3 , ENABLE);       

  96.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);                                                                                                         
  97.   NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;          
  98.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  99.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;       
  100.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  101.   NVIC_Init(&NVIC_InitStructure);
  102. }

  103. void TIM3_IRQHandler(void)
  104. {
  105.         static u16 sum = 0;
  106.         if(TIM_GetITStatus(TIM3,TIM_IT_Update) != RESET)
  107.     TIM_ClearITPendingBit(TIM3,TIM_IT_Update);               
  108.        
  109.         if(sum >= 100)//1秒
  110.         {
  111.                 sum = 0;
  112.                 PBout(0) = !PBin(0);
  113.         }
  114.         gp2y1010auof[sum] = ADC_DMA_GET_GP2Y1010AU0F();
  115.         sum++;
  116. }

  117. u32 PM25_Val(void)
  118. {
  119.         u16 index = 0;       
  120.         u32 hex_val = 0;
  121.         u32 hex_val_old = 0.0f;
  122.        
  123.         for(index = 0; index < 100; index++)
  124.                 hex_val += (gp2y1010auof[index] / 5) * 500;
  125.         hex_val /= 100;
  126.         hex_val_old = hex_val;
  127.         hex_val = (hex_val + hex_val_old) / 2;
  128.        
  129.         return hex_val;
  130. }
復制代碼

全部資料51hei下載地址:
air.rar (1016.48 KB, 下載次數: 145)



作者: usb123    時間: 2018-8-2 16:17
麻煩管理員看一下,,這個為什么下載的時候會提示資源錯誤呢




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品福利一区二区三区 | 九九热精品在线 | 国产精品视频久久久久 | 亚洲人va欧美va人人爽 | www在线| 97精品超碰一区二区三区 | 欧美久久久久久久久 | 一级片子 | 欧美韩一区二区 | 成人午夜性成交 | 亚洲成人av在线 | 99热.com| 亚洲国产aⅴ精品 | 成人av网页 | 91精品国产综合久久小仙女图片 | 久草在线免费资源 | 亚洲综合视频一区 | 国产三级日本三级 | 91精品国产欧美一区二区成人 | 中文字幕二区 | 精品久久久久久久久久 | 欧美在线观看免费观看视频 | 男女国产视频 | 久久精品小视频 | 欧美在线a | 日韩高清一区 | 狠狠涩 | 播放一级黄色片 | 国产在线视频一区 | 亚洲国产精品日本 | 亚洲成人精选 | 日本免费一区二区三区 | 国产一区在线视频 | 国产精品a一区二区三区网址 | 99久久99| 日韩有码一区 | 日韩免费福利视频 | 成人区一区二区三区 | 亚洲免费在线观看 | 国产精品99精品久久免费 | 成人在线一级片 |