初级会员
积分 87
金钱 87
注册时间 2019-3-6
在线时间 21 小时
3 金钱
刷新界面后时间等示数可以正常跳转,但温湿度却不会改变
/*********************************************************************
* *
* SEGGER Microcontroller GmbH & Co. KG *
* Solutions for real time microcontroller applications *
* *
**********************************************************************
* *
* C-file generated by: *
* *
* GUI_Builder for emWin version 5.30 *
* Compiled Jul 1 2015, 10:50:32 *
* (c) 2015 Segger Microcontroller GmbH & Co. KG *
* *
**********************************************************************
* *
* Internet: www.segger.com Support: support@segger.com *
* *
**********************************************************************
*/
// USER START (Optionally insert additional includes)
// USER END
#include "apphj.h"
#include "DIALOG.h"
#include "WindowDLG.h"
#include "EmWinHZFont.h"
#include "rtc.h"
#include "tftlcd.h"
#include "ap3216c.h"
#include "dht11.h"
#include "pcf8574.h"
/*********************************************************************
*
* Defines
*
**********************************************************************
*/
#define ID_WINDOW_0 (GUI_ID_USER + 0x014)
#define ID_TEXT_0 (GUI_ID_USER + 0x015)
#define ID_TEXT_1 (GUI_ID_USER + 0x016)
#define ID_TEXT_2 (GUI_ID_USER + 0x017)
#define ID_TEXT_3 (GUI_ID_USER + 0x018)
#define ID_TEXT_4 (GUI_ID_USER + 0x019)
#define ID_TEXT_5 (GUI_ID_USER + 0x01B)
#define ID_TEXT_6 (GUI_ID_USER + 0x01C)
#define ID_BUTTON_0 (GUI_ID_USER + 0x01A)
u8 temperature;
u8 humidity;
// USER START (Optionally insert additional defines)
// USER END
/*********************************************************************
*
* Static data
*
**********************************************************************
*/
// USER START (Optionally insert additional static data)
// USER END
/*********************************************************************
*
* _aDialogCreate
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate3[] = {
{ WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 0, 0, 320, 240, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "Text", ID_TEXT_0, 20, 30, 80, 20, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "Text", ID_TEXT_1, 20, 60, 80, 20, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "Text", ID_TEXT_2, 30, 90, 80, 20, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "Text", ID_TEXT_3, 30, 120, 80, 20, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "Text", ID_TEXT_4, 30, 150, 80, 20, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "Text", ID_TEXT_5, 140, 30, 80, 20, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "Text", ID_TEXT_6, 140, 60, 80, 20, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, "Button", ID_BUTTON_0, 220, 200, 80, 20, 0, 0x0, 0 },
// USER START (Optionally insert additional widgets)
// USER END
};
/*********************************************************************
*
* Static code
*
**********************************************************************
*/
// USER START (Optionally insert additional static code)
// USER END
/*********************************************************************
*
* _cbDialog
*/
static void _cbDialog3(WM_MESSAGE * pMsg) {
RTC_TimeTypeDef RTC_TimeStruct;
RTC_DateTypeDef RTC_DateStruct;
WM_HWIN hItem;
int NCode;
int Id;
u16 ir,als,ps;
char text[30];
u8 tbuf[40];
// USER START (Optionally insert additional variables)
// USER END
switch (pMsg->MsgId) {
case WM_PAINT:
GUI_SetBkColor(GUI_LIGHTGREEN);
GUI_Clear();
GUI_SetColor(GUI_RED);
GUI_SetFont(GUI_FONT_20_ASCII);
//显示日期
HAL_RTC_GetDate(&RTC_Handler,&RTC_DateStruct,RTC_FORMAT_BIN);//获取日期
sprintf((char*)tbuf,"20%02d-%02d-%02d",RTC_DateStruct.Year,RTC_DateStruct.Month,RTC_DateStruct.Date);
GUI_DispStringAt((const char*)tbuf,200,30);//显示日期
//显示时间
HAL_RTC_GetTime(&RTC_Handler,&RTC_TimeStruct,RTC_FORMAT_BIN);//获取时间
sprintf((char*)tbuf,"%02d:%02d:%02d",RTC_TimeStruct.Hours,RTC_TimeStruct.Minutes,RTC_TimeStruct.Seconds);
GUI_DispStringAt((const char*)tbuf,80,30);//显示时间
//显示光强度
AP3216C_ReadData(&ir,&ps,&als); //读取数据
sprintf(text,"%d",ir);
GUI_DispStringAt(text,110,120);//显示红外强度
sprintf(text,"%d",als);
GUI_DispStringAt(text,110,90);//显示环境光强度
PCF8574_ReadBit(BEEP_IO);
DHT11_Read_Data(&temperature,&humidity); //读取温湿度值
sprintf(text,"%d",temperature);
GUI_DispStringAt(text,90,60);//显示温度
GUI_DispStringAt("C",115,60);//显示温度单位
sprintf(text,"%d",humidity);
GUI_DispStringAt(text,220,60);//显示湿度
GUI_DispStringAt("%",245,60);//显示湿度单位
break;
case WM_INIT_DIALOG:
//初始化BUTTONO
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
BUTTON_SetFont(hItem,&GUI_FontHZ16);
BUTTON_SetText(hItem,"返回");
//初始化TEXT
hItem=WM_GetDialogItem(pMsg->hWin,ID_TEXT_0);
TEXT_SetTextAlign(hItem,GUI_TA_HCENTER|GUI_TA_VCENTER);
TEXT_SetFont(hItem,GUI_FONT_16_ASCII);
TEXT_SetFont(hItem,&GUI_FontHZ12);
TEXT_SetTextColor(hItem,GUI_BLACK);
TEXT_SetText(hItem, "时间:");
//初始化TEXT
hItem=WM_GetDialogItem(pMsg->hWin,ID_TEXT_1);
TEXT_SetTextAlign(hItem,GUI_TA_HCENTER|GUI_TA_VCENTER);
TEXT_SetFont(hItem,GUI_FONT_16_ASCII);
TEXT_SetFont(hItem,&GUI_FontHZ12);
TEXT_SetTextColor(hItem,GUI_BLACK);
TEXT_SetText(hItem, "温度:");
//初始化TEXT
hItem=WM_GetDialogItem(pMsg->hWin,ID_TEXT_2);
TEXT_SetTextAlign(hItem,GUI_TA_HCENTER|GUI_TA_VCENTER);
TEXT_SetFont(hItem,GUI_FONT_16_ASCII);
TEXT_SetFont(hItem,&GUI_FontHZ12);
TEXT_SetTextColor(hItem,GUI_BLACK);
TEXT_SetText(hItem, "环境光强度:");
//初始化TEXT
hItem=WM_GetDialogItem(pMsg->hWin,ID_TEXT_3);
TEXT_SetTextAlign(hItem,GUI_TA_HCENTER|GUI_TA_VCENTER);
TEXT_SetFont(hItem,GUI_FONT_16_ASCII);
TEXT_SetFont(hItem,&GUI_FontHZ12);
TEXT_SetTextColor(hItem,GUI_BLACK);
TEXT_SetText(hItem, "红外线强度:");
//初始化TEXT
hItem=WM_GetDialogItem(pMsg->hWin,ID_TEXT_4);
TEXT_SetTextAlign(hItem,GUI_TA_HCENTER|GUI_TA_VCENTER);
TEXT_SetFont(hItem,GUI_FONT_16_ASCII);
TEXT_SetFont(hItem,&GUI_FontHZ12);
TEXT_SetTextColor(hItem,GUI_BLACK);
TEXT_SetText(hItem, "短信");
//初始化TEXT
hItem=WM_GetDialogItem(pMsg->hWin,ID_TEXT_5);
TEXT_SetTextAlign(hItem,GUI_TA_HCENTER|GUI_TA_VCENTER);
TEXT_SetFont(hItem,GUI_FONT_16_ASCII);
TEXT_SetFont(hItem,&GUI_FontHZ12);
TEXT_SetTextColor(hItem,GUI_BLACK);
TEXT_SetText(hItem, "日期:");
//初始化TEXT
hItem=WM_GetDialogItem(pMsg->hWin,ID_TEXT_6);
TEXT_SetTextAlign(hItem,GUI_TA_HCENTER|GUI_TA_VCENTER);
TEXT_SetFont(hItem,GUI_FONT_16_ASCII);
TEXT_SetFont(hItem,&GUI_FontHZ12);
TEXT_SetTextColor(hItem,GUI_BLACK);
TEXT_SetText(hItem, "湿度:");
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id) {
case ID_BUTTON_0: // Notifications sent by 'Button'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
case WM_NOTIFICATION_RELEASED:
CreateWindow();
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
// USER START (Optionally insert additional code for further notification handling)
// USER END
}
break;
// USER START (Optionally insert additional code for further Ids)
// USER END
}
break;
// USER START (Optionally insert additional message handling)
// USER END
default:
WM_DefaultProc(pMsg);
break;
}
}
/*********************************************************************
*
* Public code
*
**********************************************************************
*/
/*********************************************************************
*
* CreateWindow
*/
//背景窗口WM_HBKWIN回调函数
static void _cbBkWindow(WM_MESSAGE* pMsg)
{
switch(pMsg->MsgId)
{
case WM_PAINT:
GUI_SetBkColor(GUI_BLUE);
GUI_Clear();
break;
default:
WM_DefaultProc(pMsg);
}
}
WM_HWIN CreateWindow3(void);
WM_HWIN CreateWindow3(void) {
WM_HWIN hWin;
u8 tbuf[40];
WM_SetCallback(WM_HBKWIN,_cbBkWindow);//设置背景窗口回调函数
hWin = GUI_CreateDialogBox(_aDialogCreate3, GUI_COUNTOF(_aDialogCreate3), _cbDialog3, WM_HBKWIN, 0, 0);
while(1)
{
GUI_Delay(200);
WM_InvalidateWindow(hWin); //对话框窗口无效
}
return hWin;
}
// USER START (Optionally insert additional public code)
// USER END
/*************************** End of file ****************************/
我来回答
图像显示