|

楼主 |
发表于 2018-12-18 09:03:20
|
显示全部楼层
本帖最后由 chinashaoshu 于 2018-12-18 09:18 编辑
谢谢了 硬汉老师,是我粗心,把GUIConf.c中的GUI_USE_EXRAM定义为0了,导致没有使用SDRAM,使用SDRAM就好了。!! 另外我是移植到了rt_thread上了,我发现这样弄(就是GUI_Init和窗口创建函数分开写)就黑屏,不调用_cbdemowin了。这是啥问题啊,正常吗!
static void rt_emwin_demo_entry(void *parameter)
{
WM_SetCallback(WM_HBKWIN,_cbBkWindow);
/* 设置桌面窗口的回调函数 */
SetDesktopColor();
Demo_Win = WM_CreateWindow(0,0,480,272,WM_CF_SHOW,_cbDemoWindow,0);
DemoWin_Timer = WM_CreateTimer(Demo_Win, 0, 500, 0);
while(1)
{
GUI_Exec();
GUI_X_Delay(1000);
}
}
int rt_emwin_demo_init(void)
{
rt_thread_t tid;
GUI_Init();
GUI_SetOrientation(GUI_MIRROR_X|GUI_MIRROR_Y);
/*
关于多缓冲和窗口内存设备的设置说明
1. 使能多缓冲是调用的如下函数,用户要在LCDConf_Lin_Template.c文件中配置了多缓冲,调用此函数才有效:
WM_MULTIBUF_Enable(1);
2. 窗口使能使用内存设备是调用函数:WM_SetCreateFlags(WM_CF_MEMDEV);
3. 如果emWin的配置多缓冲和窗口内存设备都支持,二选一即可,且务必优先选择使用多缓冲,实际使用
STM32F429BIT6 + 32位SDRAM + RGB565/RGB888平台测试,多缓冲可以有效的降低窗口移动或者滑动时的撕裂
感,并有效的提高流畅性,通过使能窗口使用内存设备是做不到的。
4. 所有emWin例子默认是开启三缓冲。
*/
WM_MULTIBUF_Enable(1);
tid = rt_thread_create("mygui",
rt_emwin_demo_entry, RT_NULL,
2048, 25, 200);
if (tid != RT_NULL)
rt_thread_startup(tid);
return 0;
}
INIT_APP_EXPORT(rt_emwin_demo_init); |
|