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

標題: 附上stm32f103控制dht11溫濕度傳感器的代碼 [打印本頁]

作者: e電動小馬達e    時間: 2018-12-27 09:08
標題: 附上stm32f103控制dht11溫濕度傳感器的代碼
實習內容,有些細節沒做好

單片機源程序如下:
  1. #include <stdio.h>
  2. #include "uart.h"
  3. #include "tim.h"
  4. #include "SysTick.h"
  5. #include "TFT18.h"
  6. #include "dht11.h"
  7. #include "GUI.h"

  8. #define UART_RX_LEN                8
  9. uint8_t USART2_Buffer[UART_RX_LEN]= {0};
  10. //uint8_t Data_Receive[UART_RX_LEN]= {0};
  11. uint8_t Sendbuf[UART_RX_LEN]={0};
  12. int USART2_Rx=0;
  13. double temperature=0;  //空氣溫度
  14. double humidity=0;     //空氣濕度
  15. //uint8_t illumination; //光照強度
  16. //uint8_t soil;         //土壤濕度
  17. uint8_t Time_3s=0;
  18. uint8_t Time_2s=0;
  19. uint8_t ch;
  20. char buffer[5];
  21. char str[8];


  22. static void SYS_init(void);
  23. static void NVIC_Configuration(void);
  24. static void lcd(void);
  25. static void kaiji(void);



  26. int main()
  27. {

  28.         SYS_init();
  29.     kaiji();
  30.         while(1){
  31. //        u8 buffer[5];
  32. //        if(Time_2s==1){
  33. //            Time_2s=0;
  34. //            if (dht11_read_data(buffer)==0){
  35. //                humidity = buffer[0] + buffer[1] / 10.0;        //空氣濕度
  36. //                temperature = buffer[2] + buffer[3]/10.0;     //空氣溫度
  37. ////                humidity=1.2;
  38. ////                temperature=3.5;
  39. //                }
  40. //            //在屏幕顯示數據
  41. //            lcd();   

  42. ///****************數據處理*********************/
  43. ///*
  44. // *回復報文格式         Data_Receive[0]                          Data_Receive[1]    Data_Receive[2]     Data_Receive[3]    Data_Receive[3]
  45. // *         (1為空氣溫度,2為空氣濕度,3為光照強度,4為土壤濕度)    數據十位           數據個位             數據十分位          數據百分位
  46. // *
  47. // */                 
  48. //            Sendbuf[0]=2;               //標志位2位空氣濕度
  49. //            Sendbuf[1]=buffer[0]/10;    //濕度的十位
  50. //            Sendbuf[2]=buffer[0]%10;    //濕度的個位
  51. //            Sendbuf[4]=buffer[1]/10;    //濕度的十分位
  52. //            Sendbuf[5]=buffer[1]%10;    //濕度的百分位
  53. //        }
  54.         }
  55. }       


  56. /*
  57. 函數功能:資源初始化
  58. */
  59. static void SYS_init(void)
  60. {
  61.     uart2_init(115200);
  62.     NVIC_Configuration();
  63.     /*tim2 10ms 中斷定時*/
  64.     Tim2_Config(10000,71);
  65.     Lcd_Init();
  66.       
  67. }

  68. /*
  69. 函數功能:USART2中斷控制
  70. */
  71. void NVIC_Configuration(void)
  72. {  
  73.     //配置中斷控制器
  74.   NVIC_InitTypeDef NVIC_InitStructure;
  75. //  /* Enable and set USART Interrupt to the lowest priority */
  76.   NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
  77.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  78.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
  79.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

  80.   NVIC_Init(&NVIC_InitStructure);
  81.   
  82. }



  83. void kaiji(void)
  84. {
  85.         Lcd_Clear(GRAY0);
  86.         Gui_DrawFont_GBK16(35,50,BLUE,GRAY0,"開機中...");
  87. }
  88. void lcd(void)
  89. {
  90.         Lcd_Clear(GRAY0);
  91.         Gui_DrawFont_GBK16(18,30,BLACK,GRAY0,"智能農業大棚");

  92.         Gui_DrawFont_GBK16(10,50,BLUE,GRAY0,"空氣溫濕度檢測");

  93.         Gui_DrawFont_GBK16(10,70,BLUE,GRAY0,"空氣溫度:");
  94.     sprintf(str,"%f",temperature);
  95.     Gui_DrawFont_GBK16(80,70,BLUE,GRAY0,str);   
  96.     Gui_DrawFont_GBK16(10,90,BLUE,GRAY0,"空氣濕度:");
  97.     sprintf(str,"%f",humidity);
  98.     Gui_DrawFont_GBK16(80,90,BLUE,GRAY0,str);
  99.        
  100. }

  101. /*
  102. 接收中斷處理函數
  103. */
  104. //串口5接收中斷   

  105. void USART2_IRQHandler()
  106. {
  107. //    u32 temp = 0;  
  108. //    u16 i = 0;
  109.         if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET) //中斷產生
  110.         {
  111.         Gui_DrawFont_Num32(100,50,BLACK,GRAY0,5);
  112.       
  113.                 USART_ClearITPendingBit(USART2,USART_IT_RXNE); //清除中斷標志
  114.                          
  115.                 USART2_Buffer[USART2_Rx] = USART_ReceiveData(USART2);     //接收串口2數據到buff緩沖區
  116.                 USART2_Rx++;
  117.                       
  118.                 if(USART2_Buffer[USART2_Rx-1] == 0x0a || USART2_Rx == UART_RX_LEN)    //如果接收到尾標識是換行符(或者等于最大接受數就清空重新接收)
  119.                 {
  120.             //收到網關以‘9’開頭的命令報文就將檢測的數據組成的報文Sendbuf回復網關
  121.                         if(USART2_Buffer[0] == '9')                      //檢測到頭標識是我們需要的
  122.                         {
  123.                
  124.                 delay_ms(20);
  125. //                                UART_Send_Message(USART2,Sendbuf);
  126.                                 USART2_Rx=0;                                 
  127.                         }
  128.                         else
  129.                         {
  130.                                 USART2_Rx=0;                   //不是我們需要的數據或者達到最大接收數則開始重新接收
  131.                         }
  132.                 }
  133.         }
  134. }
復制代碼

所有資料51hei提供下載:
空氣濕度.7z (166.54 KB, 下載次數: 116)







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 一区二区福利视频 | 亚洲一区二区国产 | 国产精品69久久久久水密桃 | 玖玖操 | 免费国产视频在线观看 | 欧美看片| 91精品久久久久久久久久入口 | 国产一区视频在线 | 精品国产乱码久久久久久a丨 | 日韩不卡在线观看 | 国产精品久久久久久久久久三级 | 日本精品视频 | 在线视频一区二区三区 | 久久综合一区 | 日韩成人高清 | 一区二区三区免费 | 国产在线一区二 | 国产一伦一伦一伦 | 国产第一页在线播放 | 欧美99久久精品乱码影视 | av入口| 日韩另类| 91精品一区二区三区久久久久 | 亚洲精品在线免费观看视频 | 91久久久久久久久久久久久 | 亚洲人人 | 亚洲综合色婷婷 | 欧美激情在线一区二区三区 | 亚洲视频在线观看一区二区三区 | 国产精品96久久久久久 | 久草视频在线播放 | 久久久亚洲一区 | 81精品国产乱码久久久久久 | 丝袜美腿一区二区三区 | 精品成人在线视频 | 性生生活大片免费看视频 | 一区二区在线 | 日韩区| 国产高清视频在线观看 | 国产1区 | 亚洲欧美日韩精品久久亚洲区 |