OpenEdv-开源电子网

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

裸机移植UCGUI后按键不灵敏

[复制链接]

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2017-7-26
在线时间
29 小时
发表于 2017-10-17 11:59:37 | 显示全部楼层 |阅读模式
20金钱
主函数如下:
创建的按钮要按很多次才偶尔有一次两次成功完成动作的,并不是每次都可以,不知道为什么,哪位高手指点一下,在此先感谢了。
比如:我按下button1的时候会改变button2的文字显示,然后我一直按button1,button1会变亮一些(按了其它地方之后会变暗),读出来的Button_State.Pressed也是等于1的(屏幕上有显示),
GUI_DispDecAt(Button_State.x,500,100,4);
GUI_DispDecAt(Button_State.y,500,140,4);
这两个函数显示的数值也是对的,就是偶尔才会会执行if(KeyNum == GUI_ID_OK)里面的函数,不知道为什么。

int main(void)
{
        u16 tpx1,tpy1;
        BUTTON_Handle hButton1;
        FRAMEWIN_Handle hFrame;
        FRAMEWIN_Handle hFrame2;
        BUTTON_Handle hButton2;
        GUI_PID_STATE Button_State;
        int temp = 1,KeyNum;
       
        delay_init();
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        EXTIX_Init();
       
        KEY_Init();
        i2c_init();
        GUI_Init();
       
        GUI_SetBkColor(GUI_BLACK);
        GUI_SetColor(GUI_WHITE  );
        GUI_Clear();
       
        hFrame = FRAMEWIN_Create("test",0,WM_CF_SHOW,0,0,250,250);
        WM_Paint(hFrame);
       
        GUI_DrawCircle(100,100,50);
        GUI_DispStringAt("huankaiweishengwu",300,220);
       
        hButton2 = BUTTON_Create(500,300,100,60,GUI_ID_YES,WM_CF_SHOW);
        BUTTON_SetText(hButton2,"OK");

        hButton1 = BUTTON_Create(100,300,100,60,GUI_ID_OK,WM_CF_SHOW);
        BUTTON_SetText(hButton1,"Button1");

        while(1)
        {
                delay_ms(7);
                GUI_TOUCH_Exec();
               
                GUI_TOUCH_GetState(&Button_State);
                GUI_TOUCH_StoreStateEx(&Button_State);
                GUI_DispDecAt(Button_State.x,500,100,4);
                GUI_DispDecAt(Button_State.y,500,140,4);
                GUI_DispDecAt(Button_State.Pressed,300,400,4);
               
//                GUI_Exec();
                KeyNum = GUI_GetKey();
                GUI_Exec();
               
                if(KeyNum == GUI_ID_OK)
                {
                        if(temp == 1)
                        {
                                temp = 0;
                                BUTTON_SetText(hButton2,"yes");
                        }
                        else
                        {
                                temp = 1;
                                BUTTON_SetText(hButton2,"no");
                        }
                        FRAMEWIN_SetBarColor(hFrame2,0,GUI_YELLOW);
                        KeyNum = 0;
                }
                if(KeyNum == GUI_ID_YES)
                {
                        BUTTON_SetText(hButton1,"OK");
                        hFrame2 = FRAMEWIN_Create("test",0,WM_CF_SHOW,600,0,150,150);
                        WM_Paint(hFrame2);
                        KeyNum = 0;
                }
        }
}

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

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2017-7-26
在线时间
29 小时
 楼主| 发表于 2017-10-17 17:18:51 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-10-18 00:28:27 | 显示全部楼层
帮顶
回复

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2017-7-26
在线时间
29 小时
 楼主| 发表于 2017-10-18 10:07:29 | 显示全部楼层
这个问题,我在网上搜了,好像有不少人遇到,就是没有谁贴出了最后是怎么解决的,哪位大虾帮忙解答一下,在此先谢过了!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-10-19 01:11:39 | 显示全部楼层
帮顶
回复

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2017-7-26
在线时间
29 小时
 楼主| 发表于 2017-10-23 13:09:45 | 显示全部楼层
自己顶上去,还没有解决这个问题......
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-27 01:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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