EmWin中Edit工具实时更新数据方法

直接使用GUIBuilder生成的C文件中的Edit,大家会发现里面的数据是不会实时变化的,这样就需要稍微进行改动,使它以我们设定的时间间隔更新数据。

笔者使用的是DHT11传感器,在Edit中实时显示数据。传感器的数据使用全局变量share_resource_u8[],数组中的[0]和[1]分别是温度数据和湿度数据。

总共分三步:

第一步:

 

// 在static void _cbDialog(WM_MESSAGE * pMsg)当中添加
switch (pMsg->MsgId) {  
      case WM_TIMER:  
    //      GET_Data_DHT11();				//获得温湿度数据,在其他进程中完成,因此省略此段  
            DISPLAY_DATA_DHT11(pMsg);			//更新Edit中  
            WM_RestartTimer(pMsg->Data.v, 100);  
        break;  


第二步:

 

 

 

 

/*********************************************************************
*
*       _cbDialog
*/
void DISPLAY_DATA_DHT11(WM_MESSAGE *pMsg)
{
	char temperature_s[10];  	    
	char humidity_s[10];
	WM_HWIN hItem;
	WM_HWIN hWin = pMsg->hWin;
	
    /*****				温度数据				*******/
    sprintf(temperature_s, "%d", share_resource_u8[0]);
    hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_2);
    EDIT_SetText(hItem, temperature_s);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
    EDIT_SetFont(hItem, GUI_FONT_32_ASCII);
    /*****				湿度数据				*******/
    sprintf(humidity_s, "%d", share_resource_u8[1]); 
    hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_3); 
    EDIT_SetText(hItem, humidity_s); 
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER); 
    EDIT_SetFont(hItem, GUI_FONT_32_ASCII);
}


第三步:

 

 

 

 

/*********************************************************************
*
*       ZZ_GUIBuilder
*/
WM_HWIN ZZ_GUIBuilder(void) {
  WM_HWIN hWin;

  hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
	WM_CreateTimer(WM_GetClientWindow(hWin), 0, 100, 0);	    //添加此段
  return hWin;
}

// USER START (Optionally insert additional public code)
// USER END

/*************************** End of file ****************************/


第二版。更改了之前bug所添加的其他代码。

 

仅供参考,学习使用。

链接:https://pan.baidu.com/s/1tAS7_z49cZH4vIlZRsuRag 
提取码:13bq 

 

 

  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值