OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5318|回复: 2

emwin 启动所有窗口的存储设备

[复制链接]

13

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2017-6-23
在线时间
53 小时
发表于 2018-1-25 18:10:04 | 显示全部楼层 |阅读模式
1金钱
WM_SetCreateFlags(WM_CF_MEMDEV)  这句话一旦加上 就会导致 黑屏,emwin无法启动,但是一但去掉emwin就正常显示。请问这个是什么问题呢?移植正点原子的LCD驱动到ILI9486

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

231

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2872
金钱
2872
注册时间
2018-1-24
在线时间
258 小时
发表于 2018-1-29 12:01:40 | 显示全部楼层
版主,各位坛友大家好,最近学习EMWIN遇到了一个问题,创建窗口移动时使能存储设备时显示不正常,而且把不是窗口的部分给填充了,失能存储设备后,一切演示正常,效果如下所示,请大家帮我解答一下,谢谢!!!!!!!!!!!!!
一、使能存储设备现象:

二、失能存储设备现象

三、问题:
1.我的EMWIN用的内存总大小为960*1024,足以演示这个例程,而且在电脑上仿真也正常,移植到板子上就不正常了?而且使用存储设备的宏#defineGUI_SUPPORT_MEMDEV (1) 也定义了。移动时边框也异常了,不整齐。
2.创建的窗口使用内储设备来重绘,背影回调刷新是0,50,320,240这个区域,但为什么在失效WM_Invalidate(WM_HBKWIN);这个之后,上面的标题也给乱填充了呢?
//===========================================================================背景窗口回调函数
static void _cbBkWindow(WM_MESSAGE *pMsg)
{
        
        switch(pMsg->MsgId) //¸ù¾Y2»í¬μÄÏûÏ¢ààDí′|àí
        {
                case WM_PAINT:   
                 
                        GUI_ClearRect(0,50,320,210);

                        break;
                default:
                        WM_DefaultProc(pMsg);  
                break;
        }
               
}
//===========================================================================创建窗口回调函数
static void _cbWindow(WM_MESSAGE *pMsg)
{
        GUI_RECT Rect;

        switch(pMsg->MsgId)
        {
                case WM_PAINT:
                {
                        WM_GetInsideRect(&Rect);  
                        GUI_SetBkColor(GUI_RED);
                        GUI_SetColor(GUI_YELLOW);
                        GUI_ClearRectEx(&Rect);         
                        GUI_DrawRectEx(&Rect);         
                        GUI_SetColor(GUI_BLACK);
                        GUI_SetFont(&GUI_Font16_ASCII);  
                        GUI_DispStringHCenterAt("Foreground Window",75,40);
                        break;
                }
                default:
                {
                        WM_DefaultProc(pMsg);
                  break;
                }
        }
               
}

//===========================================================================移动窗口
static void _MoveWindow(const char* pText)
{
        WM_HWIN hWnd;
        int i;
        hWnd = WM_CreateWindow(50,50,150,100,WM_CF_SHOW,_cbWindow,0);

        for(i=0;i<20;i++)
        {
                WM_MoveWindow(hWnd,3,3);  
                GUI_Delay(10);
        }
        if(pText)
        {
                GUI_DispStringAt(pText,5,50);
                GUI_Delay(300);
        }
        
        WM_DeleteWindow(hWnd);  
        WM_Invalidate(WM_HBKWIN);
        GUI_Exec();
        
}
//===========================================================================演示代码主函数
void Emwin_DemoRedraw(u8 index)
{
        char buff[45];
        WM_CALLBACK *_cbOldBK;
        GUI_SetBkColor(GUI_BLACK);  
        GUI_Clear();

        GUI_SetColor(GUI_WHITE);         
        GUI_SetFont(&GUI_Font24_ASCII);
        GUI_DispStringHCenterAt("WM_Redraw-Sample",160,5);
        GUI_SetFont(&GUI_Font16B_ASCII);  
        
        if(index)WM_DisableMemdev(WM_HBKWIN);//失能存储设备
        else WM_EnableMemdev(WM_HBKWIN);//使能存储设备

        
        while(1)
        {
                _MoveWindow("Background has not been redraw"); //ò&#198;&#182;ˉ′°&#191;ú

                sprintf(buff,"GUI UsedBlocks: %.8d FreeBlocks: %.8d\r\n", GUI_ALLOC_GetNumUsedBlocks(), GUI_ALLOC_GetNumFreeBlocks());
               GUI_DispStringHCenterAt(buff,160,210);

                GUI_Delay(2000);
                _cbOldBK = WM_SetCallback(WM_HBKWIN,_cbBkWindow);
                _MoveWindow("Background has been redraw");
                WM_SetCallback(WM_HBKWIN,_cbOldBK);
                sprintf(buff,"GUI UsedBlocks: %.8d FreeBlocks: %.8d\r\n", GUI_ALLOC_GetNumUsedBlocks(), GUI_ALLOC_GetNumFreeBlocks());
                GUI_DispStringHCenterAt(buff,160,210);
                GUI_Delay(2000)        ;
                break;
        }

}

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2018-1-30 01:01:17 | 显示全部楼层
帮顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 03:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表