OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6280|回复: 4

UCGUI按键

[复制链接]

10

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2012-10-26
在线时间
0 小时
发表于 2013-7-21 20:25:54 | 显示全部楼层 |阅读模式
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "key.h"
#include "button.h"
#include "timer.h"
#include "my_lcd.h"
#include "gui.h"
#include "lcd.h"
#include "touch.h"
#include "LCD_Protected.h"

//旺宝
GUI_PID_STATE STATE; //该变量为GUI触屏的x y位置存储坐标(内部已将其换算为屏幕坐标了)

BUTTON_Handle hButton0;
BUTTON_Handle hButton1;

u8 Key = 0;

int main(void)
{
SystemInit();
delay_init(72);
LED_Init();
KEY_Init();
Timerx_Init(100,7199);
StartTouch();
GUI_Init();
GUI_SetBkColor(GUI_RED);
GUI_SetColor(GUI_WHITE);
GUI_Clear(); 

GUI_SetFont(&GUI_Font8x16);
GUI_DispStringHCenterAt("Click on button...",160,0);
hButton0 = BUTTON_Create(110, 20, 100, 40, GUI_ID_BUTTON0, WM_CF_SHOW);
hButton1 = BUTTON_Create(110, 80, 100, 40, GUI_ID_BUTTON1, WM_CF_SHOW);
BUTTON_SetBkColor(hButton0, 1, GUI_RED);
BUTTON_SetBkColor(hButton1, 1, GUI_BLUE);
BUTTON_SetText(hButton0,"Click me...");
BUTTON_SetText(hButton1,"my love...");
WM_Paint(hButton0);
WM_Paint(hButton1);

while(1)
{
GUI_TOUCH_GetState(&STATE);
GUI_DispStringAt("x:", 0, 200);
GUI_DispDec(STATE.x, 3);
GUI_DispStringAt("y:", 0, 250);
GUI_DispDec(STATE.y, 3);
if (STATE.Pressed == 1)
{

GUI_CURSOR_SetPosition(STATE.x, STATE.y);
GUI_CURSOR_Show();
}
delay_ms(1);
Key = GUI_WaitKey();
//// Key=GUI_GetKey();
// switch(GUI_GetKey())
// {
// case   GUI_ID_BUTTON0:
// GUI_DispStringAt("my love",0,240);
// GUI_Delay(500); //GUI_Exec();
// break;
// case   GUI_ID_BUTTON1:
// GUI_DispStringAt("my hate",0,200);
// GUI_Delay(500); // GUI_Exec();
// break;
// }
// GUI_Exec();
// Key=GUI_GetKey();
if(Key==GUI_ID_BUTTON0)
{
GUI_DispStringAt("my love",0,240);
GUI_Delay(500);
}
if(Key==GUI_ID_BUTTON1)
{
GUI_DispStringAt("my hate",0,240);
GUI_Delay(500);
}
}

}

void TIM3_IRQHandler(void)   //TIM3中断
{
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 
{
GUI_TOUCH_Exec();

TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx的中断待处理位:TIM 中断源 
}
}


按键的动态效果很好,只是不执行相应的功能,大家帮忙看下这是怎么回事!






正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-7-21 20:38:17 | 显示全部楼层
回复 支持 反对

使用道具 举报

7

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2012-8-5
在线时间
8 小时
发表于 2014-2-9 23:31:46 | 显示全部楼层
我也是遇到这个问题!
http://weibo.com/lovemcu 电子怎么了
回复 支持 反对

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2014-2-10 09:05:34 | 显示全部楼层
干嘛不设置回调函数,回调函数对按键的各个事件作出响应
回复 支持 反对

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2014-2-10 09:08:13 | 显示全部楼层
通过资源表创建各个控件吧,利用回调函数对控件进行初始化操作,同时对控件的各个事件作出相应,很方便的,也可以在回调函数里向主函数传递控制信息,回到主函数里再采取相应动作
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 22:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表