baonng 发表于 2012-9-17 16:17:15

使用ucgui按钮出现问题,求帮助

各位大大,本人在stm32上使用ucgui+ucos编写程序,在使用按钮的时候,发现点击按钮,GUI_GetKey()无法得到按钮ID(偶尔一次可以得到)。程序代码如下:
void MainTask(void)
{
   GUI_Init();
   while(1)
 {
  //WM_Exec1();
  APP_main();
   }
}
void APP_main(void)//用户主函数
{
  GUI_Clear();  while(1) {
  _Menu();
  OSTimeDlyHMSM(0,0,0,20);//按时分秒延时函数
 }
}
static void _Menu(void) {
 BUTTON_Handle hM1, hM2;//hM3, hM4;
 int sKey;
 static u8 Kf1=0, Kf2=0;
 
   GUI_RECT rText = {340,8, 460,24};
 GUI_SetBkColor(GUI_BLACK);
 GUI_SetColor(GUI_LIGHTGRAY);
 GUI_SetFont(&GUI_Font16_ASCII);
 GUI_DispStringInRect("CH1", &rText, GUI_TA_VCENTER|GUI_TA_HCENTER); 
 hM1 = BUTTON_Create( 340, 26, 120, 25, 1, BUTTON_CF_SHOW );
 BUTTON_SetText(hM1, "通道选择");
 BUTTON_SetFont(hM1, &GUI_FontHZ_SimHei_19);
 BUTTON_SetBkColor(hM1, 0, GUI_DARKGRAY);
 BUTTON_SetTextColor(hM1, 0, GUI_WHITE);
 
 hM2 = BUTTON_Create( 340, 76, 120, 25, 2, BUTTON_CF_SHOW );
 BUTTON_SetText(hM2, "探头");
 BUTTON_SetFont(hM2, &GUI_FontHZ_SimHei_19);
 BUTTON_SetBkColor(hM2, 0, GUI_DARKGRAY);
 BUTTON_SetTextColor(hM2, 0, GUI_WHITE);
 
  WM_Exec();//WM_Exec1();
  sKey = GUI_GetKey();获取按钮ID
 
 if(sKey==1){//按钮处理
  if(Kf1==0) Kf1=1;
  else Kf1=0;  
 }
 else if(sKey==2) {
  if(Kf2==0) Kf2=1;
  else Kf2=0;  
 }
 rText.y0 = 52; rText.y1 = 75;
 GUI_SetFont(&GUI_FontHZ_SimHei_19);
 if(Kf1==0) GUI_DispStringInRect("直流", &rText, GUI_TA_VCENTER|GUI_TA_HCENTER);
 else GUI_DispStringInRect("交流", &rText, GUI_TA_VCENTER|GUI_TA_HCENTER);
 
 rText.y0 = 100; rText.y1 = 125;
 GUI_SetFont(&GUI_Font16_ASCII);
 if(Kf2==0) { GUI_GotoXY(360, 102); GUI_DispCEOL();
  GUI_DispStringInRect("X1", &rText, GUI_TA_VCENTER|GUI_TA_HCENTER); }
 else GUI_DispStringInRect("X10", &rText, GUI_TA_VCENTER|GUI_TA_HCENTER);
 
 BUTTON_Delete(hM1);
 BUTTON_Delete(hM2);
}

feiante-155820 发表于 2012-9-17 16:58:29

RE:使用ucgui按钮出现问题,求帮助

挂上jLINK看看。。。。。。。

baonng 发表于 2012-9-18 09:03:31

RE:使用ucgui按钮出现问题,求帮助

看了啊,但是还是没发现问题所在啊

发表于 2012-9-18 10:12:44

RE:使用ucgui按钮出现问题,求帮助

看一下触摸屏的采集,这里是不是按照当前触摸屏来做的。

baonng 发表于 2012-9-18 17:12:05

回复:使用ucgui按钮出现问题,求帮助

回复第 4 楼 于2012-09-18 10:12:44发表:
看一下触摸屏的采集,这里是不是按照当前触摸屏来做的。 

老大,什么意思啊。触摸屏使用没有问题,通过GUI_TOUCH_GetState(&State);可以得到值。按钮显示上有变化,可能在十几,二十几次的按压过程会出现一次得到值的现象。看看,程序是否有什么问题呢???

love倩 发表于 2013-12-1 13:02:53

回复:使用ucgui按钮出现问题,求帮助

回复第 5 楼 于2012-09-18 17:12:05发表:
回复第 4 楼 于2012-09-18 10:12:44发表:
看一下触摸屏的采集,这里是不是按照当前触摸屏来做的。 

老大,什么意思啊。触摸屏使用没有问题,通过GUI_TOUCH_GetState(&State);可以得到值。按钮显示上有变化,可能在十几,二十几次的按压过程会出现一次得到值的现象。看看,程序是否有什么问题呢???大哥 我最近在玩这个 也出现了相同的现象 你的怎么解决的?求解释  可以加我qq给我讲讲吗?我的qq1811098211
 
页: [1]
查看完整版本: 使用ucgui按钮出现问题,求帮助