历史上的今天

今天是:2024年10月15日(星期二)

正在发生

2020年10月15日 | ucgui界面设计示例2

发布者:Ziyu2022 来源: eefocus关键字:ucgui界面  stm32f103VE  MDK4 手机看文章 扫描二维码
随时随地手机看文章

主机: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:绑定

**********************************************************************/

[1] [2] [3]
关键字:ucgui界面  stm32f103VE  MDK4 引用地址:ucgui界面设计示例2

上一篇:为OLED屏增加GUI支持2:2D图形库
下一篇:ucos-ii示例2:信号量测试

推荐阅读

据外媒报道,当上周宣布要把全球25万名员工的最低工资提升至每小时15美元时,这家公司对一个相关但又敏感的话题避而不谈:机器将在何时替代大多数在亚马逊仓储中心上班的员工? 亚马逊已使用机器人来处理仓储中心,也就是履行中心中的一些工作,但是这家公司淡化了机器人替代从货架上拿取物品并放入纸箱进行和运输的“分拣员”的风险。然而,据3位了解...
1、机器视觉硬件可采集周围环境信息目前常用的视觉传感器主要有:摄像头、ToF 镜头和激光雷达技术。机器视觉相机 。机器视觉相机的目的是将通过镜头投影到传感器的图像传送到能够储存、分析和(或者)显示的机器设备上。可以用一个简单的终端显示图像,例如利用计算机系统显示、存储以及分析图像。激光雷达技术 。激光雷达是一种采用非接触激光测距技术...
  9月29日,笔者在盐城高新区智能终端产业园康佳存储芯片封装测试项目建设现场看到,塔吊林立,车来车往,到处呈现的是一派紧张快干、井然有序的火热施工场景。项目负责人王监猛告诉笔者,该项目计划总投资20亿元,占地100亩,规划产能20KK/月,目前一期主体已全部竣工,正抓紧设备安装调试的前期准备工作,年内有望投产,项目全部达效后,年可实现销...
今年以来,“元宇宙”掀起科技新风口,国内外大厂在AR赛道上动作愈发频繁。近日,Nreal公布了第二款AR眼镜Nreal Air,小米发布了单目光波导AR智能眼镜,Facebook、谷歌、苹果、HTC、联想等科技巨头AR相关专利技术接二连三被曝光……由于AR设备较VR更轻便,加之底层支撑技术不断成熟,虚拟和真实世界大门已经打开。IDC预测,今年AR眼镜和头戴设备全球销量...

史海拾趣

问答坊 | AI 解惑

基于模拟电感的混沌同步电路的研究

基于模拟电感的混沌同步电路的研究 李芳,李征,柯熙政 西安理工大学自动化与信息工程学院 陕西西安 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现已成为计算机的标准图象格式。且随着枝术的 ...…

查看全部问答∨

想把三个datain数据合并成一个8位值,请问正确么?

本信息来自合作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轴 ...…

查看全部问答∨

得花了,散100分!限额10人!欲要从速!

08年4月2日注册的ID,一直没怎么使用,2010年2月活动了一下,得了朵花特此庆祝!以资鼓励!…

查看全部问答∨

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 下能直接运行吗 是否需要重新编 ...…

查看全部问答∨

嵌入式中算法讨论

大家在做嵌入式的时候都用了了哪些算法呢?比如:卡尔曼,PID,最小二乘法等等!…

查看全部问答∨

版块里面搞STM32的DIY吗

打算搞一套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 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved