需要材料:正点原子的mini开发板,DHT11温湿度传感器正点原子mini板光盘不包含DHT11实验,此处通过修改其提供的探索者开发板
光盘标准例程-库函数版本\实验31 DHT11数字温湿度传感器实验中引脚做的mini板版本实验以作补充(DATA引脚接mini板PC13脚)
在烧录好程序后请将开发板复位,在实验中发现当DHT11接mini板3.3V电源时,传感器不工作,接5V电源时能正常工作(我也不知道啥原因)
工程文件夹
实验结果
以下STM32单片机代码可以在光盘里面 实验10 的基础上添加DHT11文件夹并修改main函数得到,dht11.h dht11.c main.c如下- #ifndef __DHT11_H
- #define __DHT11_H
- #include "sys.h"
- //IO方向设置
- #define DHT11_IO_IN() {PCin(13);} //PC13输入模式
- #define DHT11_IO_OUT() {PCout(13);} //PC13输出模式 GPIOC->MODER&=~(3<<(13*2));GPIOC->MODER|=1<<13*2;
- ////IO操作函数
- #define DHT11_DQ_OUT PCout(13) //数据端口 PC13
- #define DHT11_DQ_IN PCin(13) //数据端口 PC13
- u8 DHT11_Init(void);//初始化DHT11
- u8 DHT11_Read_Data(u8 *temp,u8 *humi);//读取温湿度
- u8 DHT11_Read_Byte(void);//读出一个字节
- u8 DHT11_Read_Bit(void);//读出一个位
- u8 DHT11_Check(void);//检测是否存在DHT11
- void DHT11_Rst(void);//复位DHT11
- #endif
复制代码
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "lcd.h"
- #include "dht11.h"
-
- int main(void)
- {
- u8 t=0;
- u8 temperature;
- u8 humidity;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
- delay_init(); //初始化延时函数
- uart_init(115200); //初始化串口波特率为115200
-
- LED_Init(); //初始化LED
- LCD_Init(); //LCD初始化
-
- POINT_COLOR=RED;//设置字体为红色
- LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");
- LCD_ShowString(30,70,200,16,16,"DHT11 TEST");
- LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
- LCD_ShowString(30,110,200,16,16,"2014/5/7");
- while(DHT11_Init()) //DHT11初始化
- {
- LCD_ShowString(30,130,200,16,16,"DHT11 Error");
- delay_ms(200);
- LCD_Fill(30,130,239,130+16,WHITE);
- delay_ms(200);
- }
- LCD_ShowString(30,130,200,16,16,"DHT11 OK");
- POINT_COLOR=BLUE;//设置字体为蓝色
- LCD_ShowString(30,150,200,16,16,"Temp: C");
- LCD_ShowString(30,170,200,16,16,"Humi: %");
- while(1)
- {
- if(t%10==0)//每100ms读取一次
- {
- DHT11_Read_Data(&temperature,&humidity); //读取温湿度值
- LCD_ShowNum(30+40,150,temperature,2,16); //显示温度
- LCD_ShowNum(30+40,170,humidity,2,16); //显示湿度
- }
- delay_ms(10);
- t++;
- if(t==20)
- {
- t=0;
- LED0=!LED0;
- }
- }
- }
复制代码Keil代码下载:
STM32F103 mini板DHT11数字温湿度传感器实验.7z
(1.97 MB, 下载次数: 120)
|