#include "stm32f4xx.h"
#include "systick.h"
#include "led.h"
#include "uart.h"
#include "oled.h"
#include "gec.h"
#include "dht11.h"
#include "exti.h"
extern uint8_t RecvData[20]; //±£′æ½óêÕμÄêy¾Y
extern uint8_t RecvFlag;
uint8_t Screen_flag=0;
uint8_t Temp_default=30;
uint8_t Hum_default=95;
//ÏÔê¾±è½ÏÖμ
uint8_t show_compare_value(void)
{
uint8_t i;
uint8_t StrBuf[20];
for(i=0;i<2;i++)
OLED_ShowCHinese16X16(16*i,0,GEC ,i); //Ôúμú1¡¢2ò3ÏÔ꾡°Î¶衱á½×Ö
for(i=8;i<11;i++)
OLED_ShowCHinese16X16(16*i-96,0,GEC ,i); //Ôúμú1¡¢2ò3ÏÔ꾡°±è½ÏÖμ¡±á½×Ö
sprintf(StrBuf,":%hhu",Temp_default);
OLED_ShowStr(80, 0,StrBuf, 2);
for(i=2;i<4;i++)
OLED_ShowCHinese16X16(16*i-32,2,GEC ,i); //Ôúμú3¡¢4ò3ÏÔ꾡°êa¶è¡±á½×Ö
for(i=8;i<11;i++)
OLED_ShowCHinese16X16(16*i-96,2,GEC ,i); //Ôúμú3¡¢4ò3ÏÔ꾡°±è½ÏÖμ¡±á½×Ö
memset(StrBuf ,0 ,sizeof(StrBuf));
sprintf(StrBuf,":%hhu",Hum_default);
OLED_ShowStr(80, 2,StrBuf, 2);
OLED_ShowStr(0, 4," ", 2);
delay_ms(500);
}
//ÏÔê¾Î¶èêa¶è
uint8_t show_temp_hum(void)
{
uint8_t i;
uint8_t ret;
uint8_t DataBuf[5];
uint8_t StrBuf[20];
//Çå¿Õ½óêÕÄú′æ
memset(DataBuf ,0 ,sizeof(DataBuf));
ret = DHT11_ReadData(DataBuf);
if(ret)
{
printf("DHT11_ReadData Error!\r\n");
return 0;
}
else
{
for(i=0;i<2;i++)
OLED_ShowCHinese16X16(16*i,0,GEC ,i); //Ôúμú1¡¢2ò3ÏÔ꾡°Î¶衱á½×Ö
memset(StrBuf ,0 ,sizeof(StrBuf));
sprintf(StrBuf,":%hhu.%hhu ",DataBuf[2],DataBuf[3]);
OLED_ShowStr(32, 0,StrBuf, 2);
for(i=2;i<4;i++)
OLED_ShowCHinese16X16(16*i-32,2,GEC ,i); //Ôúμú3¡¢4ò3ÏÔ꾡°êa¶è¡±á½×Ö
memset(StrBuf ,0 ,sizeof(StrBuf));
sprintf(StrBuf,":%hhu.%hhu ",DataBuf[0],DataBuf[1]);
OLED_ShowStr(32, 2,StrBuf, 2);
if(DataBuf[2]>=Temp_default||DataBuf[0]>=Hum_default) //3¬3ö
{
for(i=6;i<8;i++)
OLED_ShowCHinese16X16(16*i-96,4,GEC ,i); //Ôúμú5¡¢6ò3ÏÔ꾡°Î£ÏÕ¡±á½×Ö
LED0(LED_ON);
LED1(LED_ON);
LED2(LED_ON);
LED3(LED_ON);
}
else
{
for(i=4;i<6;i++)
OLED_ShowCHinese16X16(16*i-64,4,GEC ,i); //Ôúμú5¡¢6ò3ÏÔ꾡°Õy3£¡±á½×Ö
LED0(LED_OFF);
LED1(LED_OFF);
LED2(LED_OFF);
LED3(LED_OFF);
}
}
delay_ms(500);
}
int main(void)
{
/****************** ó2¼t3õê¼»ˉ ********************/
Systick_Init();
UART_Init(115200);
LED_Init();
OLED_Init();
DHT11_Init();
EXTI_0_Init();
printf("HardWare Init Success!\r\n");
OLED_CLS();//ÇåÆá
/****************** êμÏÖμÄ1|Äü ********************/
while(1)
{
if(Screen_flag==0)
{
show_temp_hum();
}
else if(Screen_flag==1)
{
show_compare_value();
}
}
}
|