历史上的今天
今天是:2024年10月15日(星期二)
2020年10月15日 | ucgui界面设计示例2
2020-10-15 来源:eefocus
主机:WIN8
开发环境:MDK4.72
ucgui版本:3.90
mcu: stm32f103VE
说明:
本程序基于ucgui对话框机制设计了一个界面,并用6个实体按键对界面进行控制,并增加了进度条显示
效果图:

源码:gui_match.h
/*********************************************************************
* 对码绑定界面模块头文件
* (c)copyright 2014,jdh
* All Right Reserved
*新建时间:2014/10/24 by jdh
**********************************************************************/
#ifndef _GUI_MATCH_H_
#define _GUI_MATCH_H_
/*********************************************************************
* 头文件
**********************************************************************/
#include "world.h"
/*********************************************************************
* 宏定义
**********************************************************************/
/*********************************************************************
* 工作间隔
*单位:ms
**********************************************************************/
#define INTERVAL_GUI_MATCH 100
/*********************************************************************
* 进度条显示时间
*单位:ms
**********************************************************************/
#define TIME_PROGBAR_GUI_MATCH 3000
/*********************************************************************
* 函数
**********************************************************************/
/*********************************************************************
* 模块载入
**********************************************************************/
void gui_match_load(void);
/*********************************************************************
* 模块运行
**********************************************************************/
void gui_match_run(void);
/*********************************************************************
* 设置显示状态
*参数:enable:0:关闭显示,1:打开显示
**********************************************************************/
void gui_match_show(uint8_t enable);
/*********************************************************************
* 得到当前的显示状态
*返回:0:关闭显示,1:打开显示
**********************************************************************/
uint8_t gui_match_get_show(void);
/*********************************************************************
* 得到绑定的脚镣id
*返回:0:未绑定,其他:脚镣id
**********************************************************************/
uint16_t gui_match_get_fetter_id_bind(void);
#endif
gui_match.c
/*********************************************************************
* 对码绑定界面模块主文件
* (c)copyright 2014,jdh
* All Right Reserved
*新建时间:2014/10/24 by jdh
*修改时间:2014/10/29 by jdh
**********************************************************************/
/*********************************************************************
* 头文件
**********************************************************************/
#include "gui_match.h"
#include "cc1100.h"
#include "gui_main.h"
/*********************************************************************
* 宏定义
**********************************************************************/
#define ID_FRAMEWIN (GUI_ID_USER + 0x10)
#define ID_BUTTON_OK (GUI_ID_USER + 0x11)
#define ID_BUTTON_CANCEL (GUI_ID_USER + 0x12)
#define ID_BUTTON_UP (GUI_ID_USER + 0x13)
#define ID_BUTTON_DOWN (GUI_ID_USER + 0x14)
#define ID_BUTTON_LEFT (GUI_ID_USER + 0x15)
#define ID_BUTTON_RIGHT (GUI_ID_USER + 0x16)
#define ID_TEXT_MATCH (GUI_ID_USER + 0x17)
#define ID_TEXT_ID (GUI_ID_USER + 0x18)
#define ID_TEXT_PROGBAR (GUI_ID_USER + 0x19)
#define ID_LISTBOX (GUI_ID_USER + 0x1A)
#define ID_PROGBAR (GUI_ID_USER + 0x1B)
/*********************************************************************
* 列表框存储的数据数量
**********************************************************************/
#define LIST_LEN 20
/*********************************************************************
* 数据结构
**********************************************************************/
/*********************************************************************
* 按键状态
**********************************************************************/
struct _Key_State
{
uint8_t ok;
uint8_t cancel;
uint8_t up;
uint8_t down;
uint8_t left;
uint8_t right;
};
/*********************************************************************
* 列表框缓存
**********************************************************************/
struct _List
{
uint8_t len;
uint16_t buf[LIST_LEN];
};
/*********************************************************************
* 静态变量
**********************************************************************/
/*********************************************************************
* 界面句柄
**********************************************************************/
static WM_HWIN Handle_Gui;
/*********************************************************************
* 资源表
**********************************************************************/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] =
{
{ FRAMEWIN_CreateIndirect, "Frame3", ID_FRAMEWIN, 0, 0, 240, 320, 0, 0x0},
{ BUTTON_CreateIndirect, "OK", ID_BUTTON_OK, 5, 255, 40, 20, 0, 0x0},
{ BUTTON_CreateIndirect, "Button", ID_BUTTON_DOWN, 95, 280, 40, 20, 0, 0x0},
{ BUTTON_CreateIndirect, "UP", ID_BUTTON_UP, 95, 255, 40, 20, 0, 0x0},
{ BUTTON_CreateIndirect, "CANCEL", ID_BUTTON_CANCEL, 185, 255, 40, 20, 0, 0x0},
{ BUTTON_CreateIndirect, "RIGHT", ID_BUTTON_RIGHT, 140, 270, 40, 20, 0, 0x0},
{ BUTTON_CreateIndirect, "LEFT", ID_BUTTON_LEFT, 50, 270, 40, 20, 0, 0x0},
{ TEXT_CreateIndirect, "Match", ID_TEXT_MATCH, 140, 15, 80, 20, 0, 0x0},
{ TEXT_CreateIndirect, "ID", ID_TEXT_ID, 140, 40, 80, 20, 0, 0x0},
{ TEXT_CreateIndirect, "", ID_TEXT_PROGBAR, 140, 65, 80, 20, 0, 0x0},
{ LISTBOX_CreateIndirect, "Listbox", ID_LISTBOX, 5, 10, 120, 220, 0, 0x0},
{ PROGBAR_CreateIndirect, "Progbar", ID_PROGBAR, 140, 85, 80, 20, 0, 0x0},
// USER START (Optionally insert additional widgets)
// USER END
};
/*********************************************************************
* 上次工作时间
**********************************************************************/
static struct _Time Time_Last =
{
.s = 0,
.ms = 0,
.us = 0
};
/*********************************************************************
* 进度条开始的时间
**********************************************************************/
static struct _Time Time_Progbar =
{
.s = 0,
.ms = 0,
.us = 0
};
/*********************************************************************
* 接收CC1100的时间
**********************************************************************/
static struct _Time Time_Recv_CC1100 =
{
.s = 0,
.ms = 0,
.us = 0
};
/*********************************************************************
* 按键状态
**********************************************************************/
static struct _Key_State Key_State =
{
.ok = 0,
.cancel = 0,
.up = 0,
.down = 0,
.left = 0,
.right = 0
};
/*********************************************************************
* 当前显示状态
*0:未显示,1显示
**********************************************************************/
static uint8_t State_Show = 0;
/*********************************************************************
* 进度条动画开始标志
*0:终止,1:扫描,2:绑定
**********************************************************************/
static uint8_t Flag_Progbar = 0;
/*********************************************************************
* 列表框存储器
**********************************************************************/
static struct _List List =
{
.len = 0
};
/*********************************************************************
* 已绑定脚镣ID
*0:未绑定,其他:ID
**********************************************************************/
static uint16_t Fetter_Id_Bind = 0;
/*********************************************************************
* 静态函数
**********************************************************************/
/*********************************************************************
* 回调函数
**********************************************************************/
static void _cbDialog(WM_MESSAGE * pMsg);
/*********************************************************************
* 定时工作
**********************************************************************/
static void slot_tick(void);
/*********************************************************************
* 按键处理
**********************************************************************/
static void deal_key(void);
/*********************************************************************
* 进度条动画
*参数:percent:百分比
**********************************************************************/
static void progbar_show(uint8_t percent);
/*********************************************************************
* 发送125k绑定信号
**********************************************************************/
static void emit_125k_bind(void);
/*********************************************************************
* 处理cc1100接收数据
*参数:task:0:扫描,1:绑定
**********************************************************************/
下一篇:ucos-ii示例2:信号量测试
史海拾趣
|
本电路在实验中已经反复测试,在低于13.96V~14.11V时绿灯亮,正常情况下红灯亮。图中D8为双色发光二极管。 电路原理:电池电压为16.8V(四块单板电池)。通过稳压管给555电路一个5脚一个6.2V的参考电压,当2脚的电压高于3.1V时,555电路3脚输出低电 ...… 查看全部问答> |
|
14.66美金就可以拥有一个反语翻译机!可能他会让你捧腹大笑,因为它会录下你说的所有话,然后逐字逐句反过来播放! 可能你会因此创造很爆笑很棒的词,或者发现自己平时在讲的话,竟然是那么的有趣! … 查看全部问答> |
|
为什么每次编译时总提示:“one or more files from the Emulator foe Windows CE installation is missing. Reinstall Emulator ...\" 使用标准的模拟器,为什么会这样呢?我重装了一次eVC4.0,还是这样。一个简单的\"Hello Applicati ...… 查看全部问答> |
|
我在donet1.0下想实现关机后向服务器发送一个logoff的消息,查阅了api后我调用CeRunAppAtEvent,注册NOTIFICATION_EVENT_OFF_AC_POWER,希望在关机后启动另一个exe来做发送logoff的工作,但是没有反应,我试着注册了其他几个,例如NOTIFICATION_EVE ...… 查看全部问答> |
|
楼宇对讲通信网络是无线电通信技术中的一个重要应用领域和组成部分,这项技术的开发和应用开始于上个世纪的20年代,当时主要使用在警察局总部与巡警车之间的车载移动通信服务――并迅速在警察部门得到推广应用。1946年,美国的AT&T公司开发设计出 ...… 查看全部问答> |
|
请教版主,我用st网站提供的“STM32F10x_IAP_V3.1.0”例程时发现,用232下载程序时,iap一切正常,可是改为485通信时,iap跑到Ymodem_Receive 中就不能向外发数据 ,在此之前485发出数据一切正常。程序进入Ymodem_Receive 后,在下面程序“*” ...… 查看全部问答> |
|
利用LM3S2B93设计电路,原本想利用片内LDO提供VDDC,但是在ERRATA中看到,利用片内LDO,存在问题There is a small risk of flash corruption or device failure on power up. The issue can occur with certain VDD and VDDC power sequences. The ...… 查看全部问答> |




