在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例桌面应用界面/GUI → 使用图形界面控制LED的亮灭

使用图形界面控制LED的亮灭

桌面应用界面/GUI

下载此实例
  • 开发语言:C/C++
  • 实例大小:17.53M
  • 下载次数:7
  • 浏览次数:164
  • 发布时间:2019-11-29
  • 实例类别:桌面应用界面/GUI
  • 发 布 人:朴乖之糖糖
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 图形 界面 控制

实例介绍

【实例简介】在stm32单片机上显示两个按钮,分别控制两个灯(LED0,LED1)。
【实例截图】





【核心代码】//EMWIN(图形界面) 灯控

/*********************************************************************
*                                                                    *
*                SEGGER Microcontroller GmbH & Co. KG                *
*        Solutions for real time microcontroller applications        *
*                                                                    *
**********************************************************************
*                                                                    *
* C-file generated by:                                               *
*                                                                    *
*        GUI_Builder for emWin version 5.26                          *
*        Compiled Aug  8 2014, 14:49:54                              *
*        (c) 2013 Segger Microcontroller GmbH & Co. KG               *
*                                                                    *
**********************************************************************
*                                                                    *
*        Internet: www.segger.com  Support: support@segger.com       *
*                                                                    *
**********************************************************************
*/

#include "LED.h"
#include "DIALOG.h"
#include "BUTTON.h"


/*********************************************************************
*
*       Defines
*
**********************************************************************
*/
#define ID_FRAMEWIN_0        (GUI_ID_USER 0x00)
#define ID_BUTTON_0        (GUI_ID_USER 0x01)
#define ID_BUTTON_1        (GUI_ID_USER 0x02)


// 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 _aDialogCreate[] = {
  { FRAMEWIN_CreateIndirect, "LightControl", ID_FRAMEWIN_0, 3, 0, 390, 350, 0, 0x64, 0 },
  { BUTTON_CreateIndirect, "LED2", ID_BUTTON_0, 200, 156, 105, 37, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "LED1", ID_BUTTON_1, 30, 156, 105, 37, 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 _cbDialog(WM_MESSAGE * pMsg) {
  WM_HWIN hItem;
  int     NCode;
  int     Id;
  // USER START (Optionally insert additional variables)
  // USER END

  switch (pMsg->MsgId) {
  case WM_INIT_DIALOG:
    //
    // Initialization of 'LightControl'
    //
        hItem = pMsg->hWin;
        FRAMEWIN_SetText(hItem, "LightControl");
        FRAMEWIN_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
        FRAMEWIN_SetTitleHeight(hItem, 40);
        FRAMEWIN_SetFont(hItem, GUI_FONT_32B_1);
  //³õʼ»¯BUTTON0
    hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_0);
    BUTTON_SetFont(hItem,GUI_FONT_COMIC24B_ASCII);
    BUTTON_SetText(hItem,"LED0");
  //³õʼ»¯BUTTON1
    hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_1);
    BUTTON_SetFont(hItem,GUI_FONT_COMIC24B_ASCII);
    BUTTON_SetText(hItem,"LED1");
 
    break;
  case WM_NOTIFY_PARENT:
    Id    = WM_GetId(pMsg->hWinSrc);
    NCode = pMsg->Data.v;
    switch(Id)
{
        case ID_BUTTON_0: // Notifications sent by 'LED2'
        switch(NCode) {
                    case WM_NOTIFICATION_CLICKED:
                    // USER START (Optionally insert code for reacting on notification message)
                    // USER END
                    break;
                   case WM_NOTIFICATION_RELEASED:
                    LED0=~LED0;
                    break;
                   // USER START (Optionally insert additional code for further notification handling)
                   // USER END
                                }
      break;
    case ID_BUTTON_1: // Notifications sent by 'LED1'
      switch(NCode) {
                          case WM_NOTIFICATION_CLICKED:
                            // USER START (Optionally insert code for reacting on notification message)
                            // USER END
                            break;
                          case WM_NOTIFICATION_RELEASED:
                               LED1=~LED1;
                            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
*
**********************************************************************
*/
/*********************************************************************
*
*       CreateLightControl
*/
WM_HWIN CreateLightControl(void);
WM_HWIN CreateLightControl(void) {
  WM_HWIN hWin;

  hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
  return hWin;
}


//BUTTONÑÝʾº¯Êý
void Main_task(void)
{
    WM_HWIN hWIN;
    hWIN=CreateLightControl();
    while(1)
    {
        GUI_Delay(100);
    }    
};    

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

标签: 图形 界面 控制

实例下载地址

使用图形界面控制LED的亮灭

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警