|

楼主 |
发表于 2024-4-12 09:48:24
|
显示全部楼层
#include "GUI.h"
#include "string.h"
#include "demo.h"
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
///*****************************************************************************************************/
///*EMWIN*/
#include "GUI.h"
//#include "WM.h"
#include "DIALOG.h"
#include "ADC.h"
WM_HTIMER RUN_Timer;
uint16_t adcValue1,adcValue2,adcValue3,adcValue4,adcValue5 = 0;
TEXT_Handle hText1, hText2, hText3,hText4, hText5, hText6;
void UpdateADCValues() {
char buffer[20];
uint16_t adcValue;
// 对于每个ADC通道,读取数据并更新对应的文本控件
adcValue = AD_value[0];
sprintf(buffer, "%d", adcValue);
TEXT_SetText(hText1, buffer);
adcValue = AD_value[1];
sprintf(buffer, "%d", adcValue);
TEXT_SetText(hText2, buffer);
adcValue = AD_value[2];
sprintf(buffer, " %d", adcValue);
TEXT_SetText(hText3, buffer);
adcValue = AD_value[3];
sprintf(buffer, "%d", adcValue);
TEXT_SetText(hText4, buffer);
adcValue = AD_value[4];
sprintf(buffer, "%d", adcValue);
TEXT_SetText(hText5, buffer);
adcValue = AD_value[5];
sprintf(buffer, "%d", adcValue);
TEXT_SetText(hText6, buffer);
}
static void emwin_draw(void)
{
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
GUI_SetColor(GUI_DARKMAGENTA);
GUI_SetTextMode(GUI_TM_TRANS);
GUI_FillRoundedRect(10, 10, 90, 60, 5);
GUI_FillRoundedRect(10, 80, 90, 130, 5);
GUI_FillRoundedRect(10, 150, 90, 200, 5);
GUI_FillRoundedRect(230, 10, 310, 60, 5);
GUI_FillRoundedRect(230, 80, 310, 130, 5);
GUI_FillRoundedRect(230, 150,310, 200, 5);
GUI_FillRoundedRect(100, 10, 220, 150, 5);
GUI_SetColor(GUI_WHITE);
GUI_SetFont(GUI_FONT_8_ASCII);
GUI_DispStringAt("Pa", 75, 45);
GUI_DispStringAt("Pa", 75, 115);
GUI_DispStringAt("Pa", 75, 185);
GUI_DispStringAt("m^3/s", 280, 45);
GUI_DispStringAt("m^3/s", 280, 115);
GUI_DispStringAt("m^3/s", 280, 185);
GUI_SetFont(GUI_FONT_13_ASCII);
GUI_DispStringAt("Q1", 12, 42);
GUI_DispStringAt("Q2", 12, 112);
GUI_DispStringAt("Q3", 12, 182);
GUI_DispStringAt("P1", 232, 43);
GUI_DispStringAt("P2", 232, 113);
GUI_DispStringAt("P3", 232, 183);
GUI_DispStringAt("%", 200, 130);
GUI_SetFont(GUI_FONT_20_ASCII);
GUI_DispStringAt("effiency", 100, 10);
}
static void _cbDialog(WM_MESSAGE * pMsg) {
WM_HWIN hItem;
switch (pMsg->MsgId) {
case WM_CREATE:
hText1=TEXT_CreateEx(38, 10, 100, 20, WM_HBKWIN, WM_CF_SHOW, TEXT_CF_LEFT, 0, "");
TEXT_SetFont(hText1,GUI_FONT_24_ASCII);
TEXT_SetTextColor(hText1,GUI_WHITE);
hText2=TEXT_CreateEx(40, 80, 100, 20, WM_HBKWIN, WM_CF_SHOW, TEXT_CF_LEFT, 1, " ");
TEXT_SetFont(hText2,GUI_FONT_24_ASCII);
TEXT_SetTextColor(hText2,GUI_WHITE);
hText3=TEXT_CreateEx(40, 150, 100, 20, WM_HBKWIN, WM_CF_SHOW, TEXT_CF_LEFT, 2, "");
TEXT_SetFont(hText3,GUI_FONT_24_ASCII);
TEXT_SetTextColor(hText3,GUI_WHITE);
hText4=TEXT_CreateEx(260, 10, 100, 20, WM_HBKWIN, WM_CF_SHOW, TEXT_CF_LEFT, 3, "");
TEXT_SetFont(hText4,GUI_FONT_24_ASCII);
TEXT_SetTextColor(hText4,GUI_WHITE);
hText5=TEXT_CreateEx(260, 80, 100, 20, WM_HBKWIN, WM_CF_SHOW, TEXT_CF_LEFT, 4, "");
TEXT_SetFont(hText5,GUI_FONT_24_ASCII);
TEXT_SetTextColor(hText5,GUI_WHITE);
hText6=TEXT_CreateEx(260, 150, 100, 20, WM_HBKWIN, WM_CF_SHOW, TEXT_CF_LEFT, 5, "");
TEXT_SetFont(hText6,GUI_FONT_24_ASCII);
TEXT_SetTextColor(hText6,GUI_WHITE);
break;
case WM_PAINT:
emwin_draw();
break;
case WM_TIMER:
UpdateADCValues();
WM_RestartTimer(pMsg->Data.v, 1000); // 重新启动定时器
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
WM_HWIN CreateABCDE(void) {
WM_HWIN hWin;
hWin = WM_CreateWindow(0, 0, 320, 240, WM_CF_SHOW, _cbDialog, 0);
return hWin;
}
void MainTask(void)
{
GUI_Init();
GUI_UC_SetEncodeUTF8();
CreateABCDE();
RUN_Timer = WM_CreateTimer(WM_GetClientWindow(CreateABCDE()), 0, 500, 0);
while (1) {
GUI_Delay(200);
}
}
能够定时显示了,但是屏幕闪烁明显 |
|