标题:
用STM32实现温湿度OLED显示,温湿度传感器选用DHT11(带详细注释)
[打印本页]
作者:
yhe4_15
时间:
2019-4-8 12:13
标题:
用STM32实现温湿度OLED显示,温湿度传感器选用DHT11(带详细注释)
单片机选用103系列,显示器用OLED
主程序程序:DHT11驱动程序在附件里
#include "stm32f10x.h" //STM32头文件
#include "sys.h"
#include "delay.h"
#include "relay.h"
#include "oled0561.h"
#include "dht11.h"
int main (void){//主程序
u8 b[2];
delay_ms(1000); //上电时等待其他器件就绪
RCC_Configuration(); //系统时钟初始化
RELAY_Init();//继电器初始化
I2C_Configuration();//I2C初始化
OLED0561_Init(); //OLED初始化
OLED_DISPLAY_8x16_BUFFER(0," YoungTalk "); //显示字符串
OLED_DISPLAY_8x16_BUFFER(2," DHT11 TEST "); //显示字符串
if(DHT11_Init()==0){ //DHT11初始化 返回0成功,1失败
OLED_DISPLAY_8x16_BUFFER(4,"Humidity: % "); //显示字符串
OLED_DISPLAY_8x16_BUFFER(6,"Temperature: C"); //显示字符串
}else{
OLED_DISPLAY_8x16_BUFFER(4,"DHT11INIT ERROR!"); //显示字符串
}
delay_ms(1000);//DHT11初始化后必要的延时(不得小于1秒)
while(1){
if(DHT11_ReadData(b)==0){//读出温湿度值 指针1是湿度 20~90%,指针2是温度 0~50C,数据为十进制
OLED_DISPLAY_8x16(4,9*8,b[0]/10 +0x30);//显示湿度值
OLED_DISPLAY_8x16(4,10*8,b[0]%10 +0x30);//
OLED_DISPLAY_8x16(6,12*8,b[1]/10 +0x30);//显示温度值
OLED_DISPLAY_8x16(6,13*8,b[1]%10 +0x30);//
}else{
OLED_DISPLAY_8x16_BUFFER(6,"DHT11READ ERROR!"); //显示字符串
}
delay_ms(1000); //延时,刷新数据的频率(不得小于1秒)
}
全部资料51hei下载地址:
1-2-39-DHT11温湿度显示程序.7z
(222.17 KB, 下载次数: 107)
2019-4-8 14:35 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
admin
时间:
2019-4-8 14:35
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1