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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5791|回復: 0
打印 上一主題 下一主題
收起左側

附上stm32f103控制dht11溫濕度傳感器的代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:438517 發表于 2018-12-27 09:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
實習內容,有些細節沒做好

單片機源程序如下:
  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)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 极品一区| 日韩视频一区在线观看 | 亚洲三级在线观看 | 午夜噜噜噜 | 亚洲福利av | 日韩网站在线观看 | 天天综合成人网 | 日本一区二区三区在线观看 | 国产片侵犯亲女视频播放 | 欧美激情啪啪 | 精品婷婷 | 岛国一区| 久久高清国产视频 | 日本免费在线看 | 天天爽夜夜操 | 国产精品69毛片高清亚洲 | 久久久久久综合 | 日韩视频在线一区 | 国产日韩精品在线 | 精品乱码一区二区 | 日韩在线视频免费观看 | 国产高清一区二区三区 | 国产一区二区三区四区区 | 中文字幕人成乱码在线观看 | 精品国产乱码久久久久久a丨 | 欧美成人h版在线观看 | 久久一区二区三区四区五区 | 国产女人与拘做受免费视频 | 久久亚洲综合 | 欧美 日韩 在线播放 | 免费av在线网站 | 久热中文字幕 | 久久久久久久国产 | 亚洲欧美一区二区三区视频 | 国产在线网站 | 日韩免费一区二区 | 中文字幕一区二区三区精彩视频 | 免费一区二区 | 亚洲日日夜夜 | 久久精品久久综合 | 久久久精品日本 |