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