OpenEdv-开源电子网

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

各位大佬,请教一下。

[复制链接]

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2018-4-23
在线时间
43 小时
发表于 2020-8-19 15:46:22 | 显示全部楼层 |阅读模式
TFT  lcd  怎么叠加显示呢?
比如说 智能手环的表盘,可以重叠显示,时针、分针、秒针
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2018-4-23
在线时间
43 小时
 楼主| 发表于 2020-8-19 15:48:00 | 显示全部楼层
回复 支持 反对

使用道具 举报

6

主题

279

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2015-3-27
在线时间
98 小时
发表于 2020-8-19 16:39:51 | 显示全部楼层
本帖最后由 弦子的弦 于 2020-8-19 16:47 编辑

叠加显示和软件和硬件都有关系,你使用什么图形库, 使用什么LCD驱动器,可以查看相关的资料。
比如我现在使用功的python 的 PIL 图形处理库,他就提供一些图层叠加的功能,而硬件上,之前使用一个LCD屏幕,她的显示驱动(应该类似电脑的显卡?)他就可以使用指令来对图层进行操作。
如果不考虑硬件和使用图形库,在软件方面,可以考虑使用“显存”的方式来做这些操作。

简化一下模型,就考虑一个128x64的单色OLED的屏幕,你可以建立一个数组,大小为 128x64/8 字节,这个数组正好可以存放整个OLED界面的颜色数据。
那么程序所需要的操作就是在这个数组里面填数据,填充完毕后,就调用函数刷新一次。

显然,只要你后填充的数据,就会覆盖前面填充的数据,那么就实现了覆盖。
你只需要一点简单的计算方法,就可以记录某一个坐标对应是某一个数组的内容了,这些操作需要你对你使用的显示器有一定的了解,至少需要知道如何画一个点,如何画一条直线。
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2018-4-23
在线时间
43 小时
 楼主| 发表于 2020-8-19 17:37:51 | 显示全部楼层
老哥我懂你的意思,你说的这种方法我也想到了,两张图片叠加到一起,选一种为背景色,比如黑色,同一个位置,相同的点不修改,不同点,去修改保存的数据,可问题是,我显示的是16位的彩色图片数据,1.14的刷全屏,那就是135*240*2 这么大的一个buff  芯片资源不够,所有向大家请教请教有没有一个比较优化的解决方案
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-9-8
在线时间
5 小时
发表于 2020-8-19 17:56:09 | 显示全部楼层
我觉得如果是裸跑得话,先把背景图放上去,然后读取将要放置时分秒表针的位置像素缓存下来(这样缓存的数据量很小),再然后放置表针;等更新表针时先把缓存写入复原背景,再把表针放上去;这样就可以实现叠加的效果了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 05:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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