#include "stm32f10x.h" #include "delay.h" #include "oled.h" #include "sys.h" #include "DTH117.h" #include "usart.h" #include "timer.h" #include "led.h" #include "bh1750.h" u8 temp = 0;//定义全局变量 u8 humi = 0; u8 t = 0; u8 light = 0; void TIM2_Int_Init(u16 arr,u16 psc);//对该函数进行提前声明,防止**《》**标记行报错 //void LED_Init();//包含了头文件这个可以省 int main() { SystemInit();//开启系统时钟 delay_init();//初始化延时函数 TIM2_Int_Init(4999,7199);//**《》** // LED_Init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //0正常显示;1对应的反显和旋转显示。 OLED_ColorTurn(0); OLED_DisplayTurn(0); OLED_Init();//oled初始化 // OLED_Clear();//对oled进行一次清屏 /*******************************dht11操作函数*********************************/ Usart1_Init(115200);//开启串口一 DHT11_Init();//初始化dht11模块 bh1750_Init();//初始化bh1750 //显示温湿度 OLED_ShowChinese(0,16,4,16,1); OLED_ShowChinese(16,16,3,16,1); OLED_ShowChinese(32,16,5,16,1); OLED_ShowChinese(0,32,2,16,1); OLED_ShowChinese(16,32,3,16,1); OLED_ShowChinese(32,32,5,16,1); //显示冒号u8*是强制类型转换 OLED_ShowString(49,16,(u8*)":",16,1); OLED_ShowString(49,32,(u8*)":",16,1); OLED_Refresh(); while(1){ /*******************函数功能:启动dht11并进行温湿度检测,进行串口打印******************/ // DHT11_Read_Data(&temp,&humi);//DHT11读取数据 // // UsartPrintf(USART_DEBUG,"湿度%d 温度%d",temp,humi);//串口打印函数 // delay_ms(100);//延时0.1秒 /*******************函数功能:启动BH1750光照强度传感器********************/ // Light=getValue(); // bh1750_ReadOneTime(); // bh1750_ReadContinuous1(); /*******************函数功能:启动OLED显示屏********************/ //这个函数没用起来,还请大佬门在评论区帮忙解决一下,骂轻点。。。。 ////////// OLED_ShowString(35,16,(u8*)"湿度:",16,1); ////////// OLED_ShowString(35,32,(u8*)"温度:",16,1); ////////// OLED_Refresh(); if(t%10==0) //每100ms读取一次 { DHT11_Read_Data(&temp,&humi); //读取温湿度 UsartPrintf(USART_DEBUG,"湿度%d 温度%d",temp,humi); //打印串口数据 ,再加一个光照强度%d light OLED_ShowNum(57,16,humi,2,16,1); //显示湿度 OLED_ShowNum(57,32,temp,2,16,1); //显示温度 // OLED_ShowNum(57,64,light,2,16,1); OLED_Refresh(); //更新显示到OLED } delay_ms(50); t++; } ////////// OLED_ShowString(0,0,(u8*)"温度",16,0); //delay_ms(5000); } 第一次发见谅,main.c没发出去 |