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的大神帮助啊啊啊。。。
还有鼠标在对画框弹出后不会动= =,。。弄得快哭了== ==求帮助啊啊啊啊啊 GUI_Exec(); 怎么可以在中断中使用!!! 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 18:42
可是看到很多教程说中断里要gui exec啊
以下是教程= =而且外部中断的方法,只能获得触摸点击的事件,无 ...
问题大部分解决了= =可能是我延时的问题 不过中断里应该不用重绘的吧 也谢谢啦 nbzwt 发表于 2014-2-4 19:15
问题大部分解决了= =可能是我延时的问题 不过中断里应该不用重绘的吧 也谢谢啦 ...
如果你是裸机程序,GUI_Exec应该放在主循环里,
如果放在中断里,这处函数需要很长的运行时间,那么你的其它中断还要响应吗?
如果你再使用类似GUI_ExecCreatedDialog或是阻塞式调用,那放在中断里肯定不行啦!
页:
[1]