硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2998|回复: 0
收起左侧

[emWin教程入门篇] 第73章      附件H--emWin双图层简易说明

[复制链接]

740

主题

1326

回帖

3546

积分

管理员

春暖花开

Rank: 9Rank: 9Rank: 9

积分
3546
QQ
发表于 2017-4-18 18:50:47 | 显示全部楼层 |阅读模式
完整65章+12章附件教程下载地址:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=19834





第73章      附件H--emWin双图层简易说明


        关于双缓冲的基础学习,大家可以看emWin中文版或者英文版手册相应章节在开头做的说明。这里想跟大家说明的是,实际项目中不建议大家使用双图层,双图层的管理比较麻烦,使用多层窗口实现即可。不过依然制作了两个例子,供大家参考学习:
                             V6-611_STemWin实验_双图层(RTOS)
                             V6-612_STemWin实验_双图层(裸机)
        关于这两个例子,注意以下5点:
1、STM32F429/439本身仅支持单图层和双图层,不支持三图层。如果要使用双图层,顶层最好要设置为带Alpha通道的颜色格式,这样的话方便两个图层进行混合显示。
2、例程中将图层1设置为RGB565格式,图层2设置为ARGB1555,图层1是底层,图层2是顶层。
3、LCDConf_Lin_Template.c文件中设置图层设置宏定义GUI_NUM_LAYERS
        (1). 设置GUI_NUM_LAYERS = 1时,即仅使用图层1时,默认触摸值是发送给图层1的。
        (2). 设置GUI_NUM_LAYERS = 2时,即图层1和图层2都已经使能,此时图层2是顶层,用户需要根据自己的使用情况设置如下两个地方。
            a. 在bsp_touch.c文件中的函数TOUCH_InitHard里面设置参数State.Layer = 1,1就表示给图层2发送触摸值。如果设置为0,表示给图层1发送触摸值。
             b. 调用GUI_Init函数后,调用函数GUI_SelectLayer(1),设置当前操作的是图层2。如果调用函GUI_SelectLayer(1)表示操作的是图层1
4、例子中设置触摸值是发送给图层2的。
5、本实验是在图层1和图层2上面进行了2D图形操作,功能做的比较简单,是参照emWin手册中给的例子简单修改而来,图层1的绘制效果如下:
73.1.gif

        图层2的绘制效果如下:
73.2.gif

        图层1和图层2的混合显示效果如下:
73.3.gif

而我们配套的例子,图层1的显示效果如下:
73.4.png

图层2的显示效果如下:
73.5.png

由于emWin的截图功能无法截取双图层混合后的图片,只能单独截取图层1或者图层2,这里就不再贴出来了,看开发板实际的显示效果即可,跟官方所提供实例的显示效果是类似的。
努力打造安富莱高质量微信公众号:点击扫描图片关注
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-11-1 08:34 , Processed in 0.191074 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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