标题: 基于STM32的DHT11湿度传感器源程序 [打印本页]

作者: LLLBBB    时间: 2017-6-1 23:08
标题: 基于STM32的DHT11湿度传感器源程序
分享一套STM32的湿度传感器程序
实验器材:
    探索者STM32F4开发板
   
实验目的:
    学习DHT11数字温湿度传感器的使用.
   
硬件资源:
    1,DS0(连接在PF9)
    2,串口1(波特率:115200,PA9/PA10连接在板载USB转串口芯片CH340上面)
    3,ALIENTEK 2.8/3.5/4.3/7寸TFTLCD模块(通过FSMC驱动,FSMC_NE4接LCD片选/A6接RS)
    4,DHT11传感器一个(接在PG9上).

实验现象:
    本实验开机的时候先检测是否有DHT11存在,如果没有,则提示错误。只有在检测到DHT11之后才开始读取温湿
    度值,并显示在LCD上,如果发现了DHT11,则程序每隔100ms左右读取一次数据,并把温湿度显示在LCD上。同
    样我们也是用DS0来指示程序正在运行。
   
注意事项:
    1,4.3寸和7寸屏需要比较大电流,USB供电可能不足,请用外部电源适配器(推荐外接12V 1A电源).
    2,本例程在LCD_Init函数里面(在ILI93xx.c),用到了printf,如果不初始化串口1,将导致液晶无法显示!!  
    3,需自备DHT11数字温湿度传感器一个,并插在开发板的U12位置(根据丝印插,网面朝外)

单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "dht11.h"

  7.   
  8. int main(void)
  9. {
  10.         u8 t=0;                            
  11.         u8 temperature;              
  12.         u8 humidity;  
  13.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  14.         delay_init(168);  //初始化延时函数
  15.         uart_init(115200);                //初始化串口波特率为115200
  16.        
  17.         LED_Init();                                        //初始化LED
  18.         LCD_Init();                                        //LCD初始化          
  19.        
  20.         POINT_COLOR=RED;//设置字体为红色
  21.         LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");       
  22.         LCD_ShowString(30,70,200,16,16,"DHT11 TEST");       
  23.         LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
  24.         LCD_ShowString(30,110,200,16,16,"2014/5/7");
  25.         while(DHT11_Init())        //DHT11初始化       
  26.         {
  27.                 LCD_ShowString(30,130,200,16,16,"DHT11 Error");
  28.                 delay_ms(200);
  29.                 LCD_Fill(30,130,239,130+16,WHITE);
  30.                 delay_ms(200);
  31.         }                                                                  
  32.         LCD_ShowString(30,130,200,16,16,"DHT11 OK");
  33.         POINT_COLOR=BLUE;//设置字体为蓝色
  34.         LCD_ShowString(30,150,200,16,16,"Temp:  C");         
  35.         LCD_ShowString(30,170,200,16,16,"Humi:  %");
  36.         while(1)
  37.         {                        
  38.                 if(t%10==0)//每100ms读取一次
  39.                 {                                                                          
  40.                         DHT11_Read_Data(&temperature,&humidity);                //读取温湿度值                                            
  41.                         LCD_ShowNum(30+40,150,temperature,2,16);                //显示温度                             
  42.                         LCD_ShowNum(30+40,170,humidity,2,16);                        //显示湿度                   
  43.                 }                                  
  44.                  delay_ms(10);
  45.                 t++;
  46.                 if(t==20)
  47.                 {
  48.                         t=0;
  49.                         LED0=!LED0;
  50.                 }
  51. ……………………

  52. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
DHT11数字温湿度传感器实验.rar (472.37 KB, 下载次数: 197)



作者: admin    时间: 2017-6-2 00:28
好资料,51黑有你更精彩!!!
作者: abcde2    时间: 2017-9-18 17:14
不错,挺有帮助的。
作者: lyh1987a    时间: 2017-11-9 01:29

不错,挺有帮助的。
作者: asj    时间: 2018-1-10 09:18
不错,挺有帮助的。
作者: 绝海之魂    时间: 2018-5-25 00:17
好资料,51黑有你更精彩!!!

作者: 56465465    时间: 2018-8-3 21:59
怎么打不开,显示文件不存在
作者: 阿斯顿马丁    时间: 2018-11-9 14:56
学习学习!!!
作者: hanhfeng    时间: 2018-12-28 23:19
学习了学习了
作者: 菜鸟一枚666    时间: 2019-4-19 20:31
谢谢分享  很有帮助

作者: Mary521    时间: 2019-5-15 12:52
我买了怎么下载不了???
作者: 羽蒙yy    时间: 2019-5-17 13:57
挺有帮助的,谢谢
作者: 0714    时间: 2019-6-18 15:46
楼主楼主,求实验原理图
作者: winkle    时间: 2019-6-28 18:20
太好了,雪中送炭




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1