彩色屏幕GUI控制库在配备2KB内存的单片机上实现

2019-09-04 10:27

回顾
这些接口库基于我的XMOVE运动检测系统在底层绘制线控制器中实现。
基本上它不依赖于硬件。
支持320 * 240彩色屏幕分辨率。不同分辨率的开发非常复杂(想想你需要为每个点计算设计的位置,这对Android和其他系统来说是个大问题)。它是其他分辨率的完美分辨率。
我写了一篇关于更改菜单和实现任务的文章。在本文中,我将介绍我在低内存集成系统中实现的图形用户界面库。
过去花了很长时间才开发出这个界面。它不过是携带一个接口库,系统中的硬件数量少于三个。事实上,它应该是同一个短语:从长远来看很难找到封锁的道路。
在嵌入式环境中,个性化和专业化也很常见。
我在玩的时候能做什么?
功能仍然有限,但它看起来不像当前集成系统的“美感”。作为渐变,这是一个2KB,8MHz的MCU。
实现快速移动是不可能的,否则它就变成了一张卡片。
各种图像和特效在去年冬季假期花费了大量时间和优化。现在,如果你没有做很多工作,你真的不得不去做故事的垃圾。
有点悲伤
它具有以下功能。
大多数场景的丰富控制元素。
伪多线程屏幕(单片机不是多线程的,因此您需要基本支持同时可视地更新不同的控件)
动态界面(简单滑动和淡入淡出效果)
支持黑白和彩色屏幕系统。
如果您是开发集成界面的合作伙伴,我认为我的文章会给您一些启发。
第二
基本结构
完整的控件库可以用以下结构图表示:
如下所示,您可以组合控件以实现复杂的界面可视化。

实施基本功能
鉴于底层控制器缺乏通用性,我们没有提供底层控制器接口实现。
以下函数提供了GUI基本功能库的功能子集。
/ *
功能:BoxGUI(unsigned char * title)
功能:创建一个覆盖LCD屏幕屏幕的桌面
参数:无
* /
voidBoxGUI(unsigned char * title)//图形界面窗口的功能
/ *
功能:TaskBox GUI_P(u16x1,u16y1,u16x2,u16y2,u8 *标题)
功能:在LCD屏幕上创建可变大小的任务框架
参数:左下角的(x 1,y 1)坐标,右下角的(x 2,y 2)坐标,标题是窗口的标题
* /
voidTaskBoxGUI_P(u16x1,u16y1,u16x2,u16y2,u8 * title,u8MoveEN)//图形界面窗口的功能
/ *
功能:ShowMountGUI(u16x,u16y,floatMount,u8Range,u16Color,u8Font)
功能:在LCD屏幕上显示可变点浮点值。
参数:(x,y)数值的左上坐标值,装配中显示的浮点数,范围左侧的长度
请参阅彩色屏幕颜色,字体类型,LCD屏幕说明
* /
voidShowMountGUI(u16x,u16y,floatMount,u8Range,u16Color,u8Font)
/ *
功能:voidTaskBoxGUI(unsignedchar * title)
功能:在LCD屏幕上显示固定尺寸的下框架和位置
参数:tilte:屏幕标题。
返回值:无
* /
voidTaskBoxGUI(unsignedchar * title)
/ *
功能:unsignedcharmyListGUI(u8x,u8y,u8 ** list,u8mount)
功能:在LCD屏幕上显示固定大小和可变位置的菜单界面列表
参数:显示坐标(x,y),存储指针数组**列表,程序集,要显示的列表数
不能超过矩阵的大小。
返回值:0:用户被迫退出。1-mount:返回当前用户的选择(注意:从1开始)
* /
unsignedcharmyListGUI(u8x,u8y,u8 ** list,u8 * title,u8MaxMount,u8LRMaxMount,u8UDMaxMount,u8OneLRLength,u8OneUDLength)