使用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);
}
RE:使用ucgui按钮出现问题,求帮助
挂上jLINK看看。。。。。。。RE:使用ucgui按钮出现问题,求帮助
看了啊,但是还是没发现问题所在啊RE:使用ucgui按钮出现问题,求帮助
看一下触摸屏的采集,这里是不是按照当前触摸屏来做的。回复:使用ucgui按钮出现问题,求帮助
回复第 4 楼 于2012-09-18 10:12:44发表:看一下触摸屏的采集,这里是不是按照当前触摸屏来做的。
老大,什么意思啊。触摸屏使用没有问题,通过GUI_TOUCH_GetState(&State);可以得到值。按钮显示上有变化,可能在十几,二十几次的按压过程会出现一次得到值的现象。看看,程序是否有什么问题呢???
回复:使用ucgui按钮出现问题,求帮助
回复第 5 楼 于2012-09-18 17:12:05发表:回复第 4 楼 于2012-09-18 10:12:44发表:
看一下触摸屏的采集,这里是不是按照当前触摸屏来做的。
老大,什么意思啊。触摸屏使用没有问题,通过GUI_TOUCH_GetState(&State);可以得到值。按钮显示上有变化,可能在十几,二十几次的按压过程会出现一次得到值的现象。看看,程序是否有什么问题呢???大哥 我最近在玩这个 也出现了相同的现象 你的怎么解决的?求解释 可以加我qq给我讲讲吗?我的qq1811098211
页:
[1]