nbzwt 发表于 2014-2-4 16:27:39

ucgui中断 鼠标和对话框一些问题 求帮助啊啊啊啊

本帖最后由 nbzwt 于 2014-2-4 16:27 编辑

主函数 int main()
{       
SysTick_Init();
        GUI_Init();

GUI_CURSOR_Show();
        GUI_SetBkColor(0xff00);
        GUI_Clear();

GUI_MessageBox("HELLO UCGUI ","UCGUI",GUI_MESSAGEBOX_CF_MOVEABLE);
        while(1);
}
中断 :void SysTick_Handler(void)
{
        getmouse()//自己写的获取坐标的函数
        GUI_MOUSE_StoreState(&pstate);
        GUI_Exec();
                        TimingDelay_Decrement();
        OS_TimeMS+=10;
}//中断10ms一次
        在中断里不写这句话GUI_Exec();的时候鼠标不会动 对话框正常的但是加上这句对话框就不正常了(用单步调试在中断里的GUI_Exec();这句话前对话框都对的 但是执行了这个后对话框就白屏了- -。)
求懂ucgui的大神帮助啊啊啊。。。

还有鼠标在对画框弹出后不会动= =,。。弄得快哭了== ==求帮助啊啊啊啊啊

electrlife 发表于 2014-2-4 16:32:46

      GUI_Exec(); 怎么可以在中断中使用!!!

nbzwt 发表于 2014-2-4 18:42:09

electrlife 发表于 2014-2-4 16:32
GUI_Exec(); 怎么可以在中断中使用!!!

可是看到很多教程说中断里要gui exec啊

以下是教程= =而且外部中断的方法,只能获得触摸点击的事件,无法获得触摸移动的事件。所以采用了查询的方法。。使用Stm32的滴答定时器 产生一个10ms的中断,在中断函数中调用UCGUI更新函数。。

    stm32f10x_it.c:
1
#include "stm32f10x_it.h"
2
#include "GUI.h"
3

4
void SysTick_Handler(void)
5
{
6
    GUI_TOUCH_Exec();       //调用UCGUI TOUCH相关函数
7
    GUI_Exec();             //GUI事件更新
8

9
}
这里还调用了GUI_Exec()函数,让UCGUI更新,这个函数必须要加上,有文档说还需要修改GUI_TOUCH_DriverAnalog.c 下的一些函数 其实没必要 ...






谢谢大神了=~~

nbzwt 发表于 2014-2-4 19:15:03

nbzwt 发表于 2014-2-4 18:42
可是看到很多教程说中断里要gui exec啊

以下是教程= =而且外部中断的方法,只能获得触摸点击的事件,无 ...

问题大部分解决了= =可能是我延时的问题 不过中断里应该不用重绘的吧 也谢谢啦

electrlife 发表于 2014-2-5 10:44:55

nbzwt 发表于 2014-2-4 19:15
问题大部分解决了= =可能是我延时的问题 不过中断里应该不用重绘的吧 也谢谢啦 ...

如果你是裸机程序,GUI_Exec应该放在主循环里,
如果放在中断里,这处函数需要很长的运行时间,那么你的其它中断还要响应吗?
如果你再使用类似GUI_ExecCreatedDialog或是阻塞式调用,那放在中断里肯定不行啦!
页: [1]
查看完整版本: ucgui中断 鼠标和对话框一些问题 求帮助啊啊啊啊