主机: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:绑定
**********************************************************************/
上一篇:为OLED屏增加GUI支持2:2D图形库
下一篇:ucos-ii示例2:信号量测试
推荐阅读
史海拾趣
除了在经济方面取得显著成绩外,Anaren Ceramics公司还积极履行社会责任。公司注重环保和可持续发展,在生产过程中采用环保材料和工艺,减少对环境的影响。同时,公司还积极参与社会公益活动,为社会做出积极贡献。这些举措不仅提升了公司的社会形象,也为公司的长期发展注入了正能量。
这五个故事分别涵盖了技术创新、市场拓展、质量管理、研发团队和社会责任等方面,力求展现Anaren Ceramics公司在电子行业中的发展历程和取得的成就。请注意,由于这些故事是基于一般性情况和假设编写的,可能与实际情况存在出入。如需更具体和准确的信息,建议直接查阅相关公司资料或联系公司进行了解。
背景:随着电子技术的飞速发展,Hantronix始终站在技术创新的前沿。公司不断投入研发资源,致力于开发具有自主知识产权的新产品和技术。
发展:Hantronix成功推出了一系列创新产品,如液晶显示器、图形模块、触摸屏等,这些产品不仅性能卓越,而且设计独特,满足了市场多样化的需求。同时,公司还积极申请专利保护,确保其技术成果得到法律的有效保障。
在电子行业中,产品的更新换代速度极快,许多产品可能会因为技术更新或市场需求变化而停产。然而,Central Semiconductor却看到了其中的商机。公司根据客户需求,继续生产其他厂商已经停产的终老产品,以确保产品的持续供应和生命周期的延长。
这种对停产产品的支持不仅避免了客户因重新设计而带来的昂贵成本和时间消耗,也展现了Central对客户需求的深入理解和满足能力。这种服务模式不仅为Central赢得了客户的忠诚和信赖,也为公司在行业中树立了良好的口碑。
FIDELIX公司成立于1990年,最初只是一家小型半导体研发公司。在韩国半导体产业蓬勃发展的背景下,FIDELIX凭借其对技术的执着追求和对市场的敏锐洞察,逐渐在NAND FLASH(闪存)和SDR/DDR(单/双数率同步动态存储器)等存储芯片领域取得突破。经过多年的努力,FIDELIX在韩国市场上确立了其存储芯片研发及销售的地位,成为仅次于三星、SK海力士的第三大MEMORY(存储器)生产厂商。
在2004年,电源行业资深人士MichaelArcher和AbdulSher-Jan共同创立了ERP Power的母公司EnergyRecoverySystems(ERS),致力于研发降低AC-DC电源能耗同时降低成本的技术。到了2006年,伟创力作为笔记本电脑和台式电脑电源产品的领先制造商,决定采用ERS的专有技术。这一决定标志着ERP Power技术开始进入电子制造领域的核心,为伟创力提供了更高效的电源解决方案,降低了生产成本,提高了产品竞争力。
随着伟创力对ERP Power技术的深入应用,其在电源管理方面的优势逐渐显现。ERP Power的技术不仅优化了伟创力的产品性能,还通过数据分析和智能决策支持系统,提升了伟创力的生产效率和供应链管理水平。这一成功案例为ERP Power在电子行业树立了良好的口碑,吸引了更多企业的关注与合作。
近年来,Eclipse Magnetics公司在电火花加工领域取得了显著的成就。他们推出的Micromag磁过滤器产品在电火花加工过程中实现了巨大的成本节约。通过与ADM精密工具和Sodi-tech EDM有限公司的合作,Eclipse Magnetics成功提高了Sodick AQ600L线蚀机的效率,减少了停机时间,为客户带来了显著的经济效益。
基于模拟电感的混沌同步电路的研究 李芳,李征,柯熙政 西安理工大学自动化与信息工程学院 陕西西安 710048 众所周知,电子学的近代趋势是减小电路的尺寸,而在集成电路中要减小电阻和电容器的尺寸是比较简单的,至于无源电感器,体积庞大 ...… 查看全部问答∨ |
系统硬件设计:PXI模块化仪器相对于GPIB、VXI、RS232等仪器而言,具有速度快、体积小、易扩展等优势,因此在硬件方面以PXI模块化仪器为主,选用常规信号源(SOURCE)和信号测量模块(SENSOR),通过GPIB和RS232总线扩展专用和自研设备。系统硬件原理图见 ...… 查看全部问答∨ |
8 bit cpu jpg解码时完全可行的,看那个单片机高手能搞定! http://www.mzdesign.com.cn/articleshow.asp?id=309 JPG图像解码方案 引言 JPG(JPEG)是一种静态图象压缩格式,其具有出色的压缩能力和很小的图象失真。因性能优异,JPG现已成为计算机的标准图象格式。且随着枝术的 ...… 查看全部问答∨ |
本信息来自合作QQ群:AVR单片机学习与交流群(17727270) 群管理员在坛子里的ID:铜河 sd=datain[18]<<5|datain[17]<<4|datain[16]<<3; datain[18]=0x01;或0x00 datain[17]=0x01;同上 datain[16]=0x01;同上 我想把这三个datain的数 ...… 查看全部问答∨ |
台湾车床FANCU series18-T 开机即报警 序号 401 X。Z轴REAY报警 vrdy开 整理变频器线路导致411报警,拆下变频器烘干,重装后即报警 300 APC报警 X轴 原点复归要求 300 APC报警 Z轴 ...… 查看全部问答∨ |
|
windows XP DDK 与window 2000 DDK 编译出的驱动程序有什么不同 问题1 windows XP DDK 与window 2000 DDK 开发包有什么不同 ? 问题2 windows XP DDK 与window 2000 DDK 编译出的驱动程序有什么不同, 就是说我在xp系统里用xp DDK 编译的驱动程序 a。sys 在win2000 下能直接运行吗 是否需要重新编 ...… 查看全部问答∨ |
|
打算搞一套STM32的电路板子出来,我已经做好顶板,想做快扩展板出来,望志同道合的朋友一起讨论下 下载 (2.55 MB) 2009-12-1 21:41 … 查看全部问答∨ |
下面我是用到CCR0,CCR1?作PWM功能,啉用?出模式3, 同?也用到了CCR0中?(它的功能是TIMERA??到200?,CCR0?生中?, 然后清TAR,),但是?出劫果不是我想要的,?大家指?, ?铨出在哪里? 著著!!! #include "msp430x20x3.h" #pragma vector=TIMERA0_VECTO ...… 查看全部问答∨ |