|

楼主 |
发表于 2016-8-21 10:04:04
|
显示全部楼层
回 eric2013 的帖子
eric2013:
你返回的这个温度是什么。
134295549 转换成是16进制是0x8012FFD, 这个应该是flash部分的地址。
1. 首先你确认你的定时器功能是不是周期执行的
.......  使用了自增数字方法正实了 ext控件正常工作 定时器功能是周期执行的
就是显示不了
- // USER START (Optionally insert additional includes)
- // USER END
- #include "iconviewdemo.h"
- #include "DIALOG.h"
- #include "rtc.h"
- #include <stdio.h>
- #include "ukbiov.h"
- #include "background.h"
- #include "DIALOG.h"
- #include "FRAMEWIN.h"
- #include "TestAPP.h"
- #include "stm32f10x.h"
- #include "rtc.h"
- #include "EmWinHZFont.h"
- #include "stm32f10x_it.h"
- #include "dht11.h"
- #include "listwheeldemoa.h"
- #include "led.h"
- #include "delay.h"
- /*
- *********************************************************************************************************
- * 函 数 名: _cbCallback1
- * 功能说明: 回调函数
- * 形 参:pMsg 指针参数
- * 返 回 值: 无
- *********************************************************************************************************
- */
- WIN_PARA WinPara; //用户使用的窗口额外数据
- WM_HWIN hWinMais;
- uint8_t s_ucSelIconIndex = 0; /* 选择的ICON,默认不选择任何 */
- DHT11_Data_TypeDef DHT11_Data; //温湿度结构体
- //app图标描述结构体
- typedef struct{
- const GUI_BITMAP *pBitmap; //app图标
- const char *pText; //app图标名字
- }BITMAP_ITEM;
- //ICONVIEW显示的APP图标
- static const BITMAP_ITEM BitmapItemTab1[]={
- {&bmGUI1, "控制器"},
- {&bmbook, "Book"},
- {&bmbookshelf, "Booksh"},
- {&bmbrowser, "Brower"},
- };
- /*
- *********************************************************************************************************
- * 对话框GUI_WIDGET_CREATE_INFO类型数组
- *********************************************************************************************************
- */
- static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] =
- {
- { WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 0, 0, 320, 240, 0, 0x0, 0 },
- { TEXT_CreateIndirect, "", ID_TEXT_0, 0, 0, 111, 25, 0, 0x0, 0 },
- { TEXT_CreateIndirect, "", ID_TEXT_1, 0, 25, 72, 25, 0, 0x0, 0 },
- { TEXT_CreateIndirect, "", ID_TEXT_2, 72, 0, 170, 50, 0, 0x0, 0 },
- { TEXT_CreateIndirect, "", ID_TEXT_3, 239, 0, 80, 25, 0, 0x0, 0 },
- { TEXT_CreateIndirect, "", ID_TEXT_4, 240, 25, 80, 25, 0, 0x0, 0 },
- // { ICONVIEW_CreateIndirect, "Iconview", ID_ICONVIEW_0, 0, 32, 320, 210, 0, 0x0, 0 },
- // USER START (Optionally insert additional widgets)
- // USER END
- };
- /*
- *********************************************************************************************************
- * 函 数 名: Caculate_RTC
- * 功能说明: 显示RTC时间
- * 形 参:pMsg 指针参数
- * 返 回 值: 无
- *********************************************************************************************************
- */
- static void Caculate_RTC(WM_MESSAGE * pMsg)
- {
- char buf[30];
- char bufa[30];
- char bufb[30];
- char bufc[30];
- WM_HWIN hWin = pMsg->hWin;
- /*显示年月日 */
- sprintf(bufa,"%02d年%02d月%02d日",calendar.w_year,calendar.w_month,calendar.w_date);
- TEXT_SetText(WM_GetDialogItem(hWin,ID_TEXT_0), bufa);
- /*显示时间 */
- sprintf(buf,"%02d:%02d:%02d",calendar.hour,calendar.min,calendar.sec);
- TEXT_SetText(WM_GetDialogItem(hWin,ID_TEXT_2), buf);
-
- /*显示温度 */
- sprintf(bufb,"%d.%d℃",DHT11_Data.temp_int,DHT11_Data.temp_deci);
- TEXT_SetText(WM_GetDialogItem(hWin,ID_TEXT_3),bufb);
-
- /* 显示湿度 */
- sprintf(bufc,"%d.%d %",DHT11_Data.humi_int,DHT11_Data.humi_deci);
- TEXT_SetText(WM_GetDialogItem(hWin,ID_TEXT_4),bufc);
- /* 串口显示 */
- // printf("\\r\\n读取DHT11成功!\\r\\n\\r\\n湿度为%d.%d %RH ,温度为 %d.%d℃ \\r\\n",\\
- // DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci);
- }
- /*
- *********************************************************************************************************
- * 函 数 名: _cbDialogInfo
- * 功能说明: 主窗口的回调函数
- * 形 参:pMsg 参数指针
- * 返 回 值: 无
- *********************************************************************************************************
- */
- static void _cbDialog(WM_MESSAGE * pMsg)
- {
- WM_HWIN hItem;
- int NCode, Id;
- switch (pMsg->MsgId)
- {
-
- case WM_TIMER:
- /* 显示时间和日期 */
- Caculate_RTC(pMsg);
- /* 重启定时器 */
- WM_RestartTimer(pMsg->Data.v, 1000);
- break;
-
-
- case WM_INIT_DIALOG:
- hItem = pMsg->hWin;
- /* 输出年月日 */
- hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
- TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
- TEXT_SetFont(hItem,&GUI_FontHZ12); //字体
- /* 输出时间 */
- hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2);
- TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
- TEXT_SetFont(hItem,&GUI_FontHZ24); //字体
- /*显示温度 */
- hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3);
- TEXT_SetTextAlign(hItem, TEXT_CF_RIGHT | TEXT_CF_BOTTOM);
- // TEXT_GetUserData(hItem,&temperature);
- // if(*bufb>=1&&*bufb<=28)
- // {
- TEXT_SetBkColor(hItem,GUI_LIGHTBLUE); //背景颜色
- TEXT_SetTextColor(hItem,GUI_RED);//文本颜色黑色
- TEXT_SetFont(hItem,&GUI_FontHZ16); //字体
- // }
- // else if(*bufb>=29&&*bufb<=32)
- // {
- // TEXT_SetBkColor(hItem,GUI_RED); //背景颜色红色
- // TEXT_SetTextColor(hItem,GUI_BLACK);//文本颜色黑色
- // TEXT_SetFont(hItem,&GUI_FontHZ24); //字体
- // }
- //// else //
- //// {
- // TEXT_SetBkColor(hItem,GUI_LIGHTBLUE); //背景颜色红色
- // TEXT_SetTextColor(hItem,GUI_BLACK);//文本颜色黑色
- // TEXT_SetFont(hItem,&GUI_FontHZ24); //字体
- //// }
- hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4);
- TEXT_SetTextAlign(hItem, TEXT_CF_RIGHT | TEXT_CF_BOTTOM);
- TEXT_SetFont(hItem,&GUI_FontHZ16); //字体
-
-
- break;
-
- case WM_PAINT:
- GUI_Clear(); //清除活动窗口
- // GUI_DrawBitmap(&bmguia1,0,0); //绘制背景图片
- break;
-
-
- case WM_NOTIFY_PARENT:
- Id=WM_GetId(pMsg->hWinSrc);
- NCode=pMsg->Data.v;
- switch(Id)
- {
- case ID_ICONVIEW_0: //ICONVIEW0控件
- switch(NCode) //通知代码
- {
- case WM_NOTIFICATION_CLICKED:
- break;
- case WM_NOTIFICATION_RELEASED:
- s_ucSelIconIndex=ICONVIEW_GetSel(pMsg->hWinSrc);
-
- switch( ICONVIEW_GetSel(pMsg->hWinSrc))
- {
- case 0: //APP0
- if(BagAPPWin==NULL)CreateBagAPP(); //创建BagAPP
- break;
- case 1: //APP1
- if(BookAPPWin==NULL)CreateBookAPP(); //创建BookAPP
- break;
- case 2: //APP2
- CreateWindow(); //创建BookshAPP
- break;
- case 3: //APP3
- // CreateListWheelDemo(); //创建BrowerAPP
- break;
- }
- break;
- case WM_NOTIFICATION_SEL_CHANGED:
- break;
- }
- }
- default:
- WM_DefaultProc(pMsg);
-
-
- }
- }
- /*
- *********************************************************************************************************
- * 函 数 名: MainTask
- * 功能说明: 主函数
- * 形 参:无
- * 返 回 值: 无
- *********************************************************************************************************
- */
- void iconviewdemo(void)
- {
-
- uint8_t i;
- /* 使能所有窗口使用emWin内存设备,包括桌面窗口 */
- WM_SetCreateFlags(WM_CF_MEMDEV);
- /* 设置皮肤上 */
- FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
- PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
- FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
- PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
- BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
- CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
- DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);
- SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
- SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
- HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
- RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);
-
- WinPara.hWinMain = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
- /*在指定位置创建指定尺寸的ICONVIEW 小工具*/
- WinPara.hWinICON = ICONVIEW_CreateEx(0, /* 小工具的最左像素(在父坐标中)*/
- 50, /* 小工具的最上像素(在父坐标中)*/
- 320, /* 小工具的水平尺寸(单位:像素)*/
- 190, /* 小工具的垂直尺寸(单位:像素)*/
- WinPara.hWinMain, /* 父窗口的句柄。如果为0 ,则新小工具将成为桌面(顶级窗口)的子窗口 */
- WM_CF_SHOW | WM_CF_HASTRANS, /* 窗口创建标记。为使小工具立即可见,通常使用 WM_CF_SHOW */
- 0,//ICONVIEW_CF_AUTOSCROLLBAR_V, /* 默认是0,如果不够现实可设置增减垂直滚动条 */
- // GUI_ID_ICONVIEW0, /* 小工具的窗口ID */
- ID_ICONVIEW_0,
- 82, /* 图标的水平尺寸 */
- 80);/* 图标的垂直尺寸 */
-
- /* 向ICONVIEW 小工具添加新图标 */
- for (i = 0; i < GUI_COUNTOF(BitmapItemTab1); i++)
- {
- ICONVIEW_AddBitmapItem(WinPara.hWinICON, BitmapItemTab1[i].pBitmap, BitmapItemTab1[i].pText);
- }
-
- /* 设置小工具的背景色 32 位颜色值的前8 位可用于alpha混合处理效果*/
- ICONVIEW_SetBkColor(WinPara.hWinICON, ICONVIEW_CI_SEL, GUI_WHITE | 0x80000000);
-
- /* 设置字体 */
- ICONVIEW_SetFont(WinPara.hWinICON, &GUI_FontHZ16);
-
- /* 设置图标在x 或y 方向上的间距。*/
- ICONVIEW_SetSpace(WinPara.hWinICON, GUI_COORD_Y, 10);
-
- /* 设置对齐方式 在5.22版本中最新加入的 */
- ICONVIEW_SetIconAlign(WinPara.hWinICON, ICONVIEW_IA_HCENTER|ICONVIEW_IA_TOP);
-
-
- WM_CreateTimer(WM_GetClientWindow(WinPara.hWinMain), /* 接受信息的窗口的句柄 */
- 0, /* 用户定义的Id。如果不对同一窗口使用多个定时器,此值可以设置为零。 */
- 20, /* 周期,此周期过后指定窗口应收到消息*/
- 0); /* 留待将来使用,应为0 */
- while(1)
- {
- GUI_Delay(100);
-
- }
- }
- /* 串口调用打印湿度 */
- void PrintfLogo(void)
- {
- int t=0;
- if (t%10==0){
- printf("\\r\\n读取DHT11成功!\\r\\n\\r\\n湿度为%d.%d %RH ,温度为 %d.%d℃ \\r\\n",\\
- DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci);
- }
- // else
- printf("Read DHT11 ERROR!\\r\\n");
- while(1);
- }
复制代码 |
|