天天看点

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

  嵌入式系统发展日新月异,安卓和ios已然战胜了当年雄霸天下的塞班,界面是我们特别看重的因素之一。不过你考虑过自己做一套系统,写一个界面库么?在单片机上自制系统,可以很好的锻炼编程能力和架构设计能力。

  虽然功能依旧有限,不能像目前主流嵌入式系统的"美观":如渐变等,但这是2kb,8mhz的单片机!根本不能实现快速移动,否则会很卡很卡....各种图片和特效都是我在大四寒假里花了大量时间反复优化的,现在看看,当年的很多工作,如果不拿出来,真的要彻底走入历史的垃圾筐了。小伤感。

  它有如下特点:

  丰富的控件元素,应对绝大多数场景

伪多线程显示(单片机是没有多线程一说的,因此在视觉上同时更新不同控件是需要一定底层支持的)

动态界面(简单滑动和渐隐效果)

对黑白和彩屏系统都可提供支持

  如果是开发嵌入式界面的同仁,我相信我的文章会给您以一定的启发。

  下面的视频演示了动态的效果:

  可以用如下的结构图表示整个控件库:

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

  通过控件组合,可以实现相当复杂的界面显示,如下图所示:

  

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

  考虑到底层驱动并不具有普遍性,我没有给出底层驱动的接口实现。

  下面的函数给出了一部分gui基本功能库的功能函数。

  1. 对话框功能:

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

  2. 列表控件

  用户可通过旋转该终端选取不同项(需陀螺仪支持)

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

  3. 动态曲线控件

  该曲线使用了我自己开发的伪多线程技术,多条曲线可以动态显示.本图显示了三轴加速度曲线实时显示

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

4. 虚拟全键盘控件

  我的系统仅仅提供了6个实体按键,为了解决复杂键盘输入的问题,使用了虚拟全键盘控件。可以通过旋转改变界面中红框的位置~当红框移到虚拟按键上时,点选确定即可上屏.

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

5. 图表控件

  显示柱状图,随着菜单项的数量和大小,动态的修改柱状图的位置,以获得最佳显示效果.

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

6. 滑动条控件

  可用于用户通过移动滑动手柄位置修改值.

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

7. 时间表显示控件

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

8. 长整型数字输入控件

9. 主菜单显示控件

       系统目前支持多种菜单样式,下面的图给出了其中两种:

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

 和以下菜单样式:

XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库

其他控件由于已经在其他相关文章中出现,因此省略.

  本文展示的界面控件仅仅是其中很小的一部分.其他还包括了密码输入控件,中文输入法控件等,限于空间所限没有一一显示.这是当年热火加蛋疼的大四,在没有代码提示和简陋ide下一行一行的写出来的代码库.这套界面库的代码量约为3000行.

  有任何问题,欢迎随时交流。