2KB内存单片机上实现彩屏GUI控件库

本文介绍了在仅2KB内存、8MHz的单片机上实现的彩屏GUI库,包括丰富的控件元素、伪多线程显示、动态界面效果。该库适用于黑白和彩屏系统,尽管功能受限,但在低资源环境下展示了强大的定制化潜力,对于开发嵌入式界面的工程师具有启发意义。
摘要由CSDN通过智能技术生成

一. 综述

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

这些界面库都是在底层画点画线的驱动程序上实现的,基于我的XMOVE动作感应系统。基本具有硬件无关性。支持彩屏320*240的分辨率,由于考虑不同分辨率的开发过分复杂(想想看你需要计算每个点布局在哪个位置,这对安卓等系统都是大问题),因此我并没有太过完善的考虑过其他分辨率。

我已经写过一篇关于菜单切换和任务实现的文章,本文将介绍我在低内存嵌入式系统上实现的界面GUI库。当年开发这套界面花费了大量的时间,不过搭载这些界面库和系统的硬件数量不超过3台,真是应了那句话:封闭的道路是难以求得长远的发展的。不过,嵌入式的环境下,定制化和特别化也非常正常。玩么,有什么不可以?!

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

它有如下特点:

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

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

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

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

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

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

XMOVE手持终端演示视频

二. 基本结构

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

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

三. 基本函数实现

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

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

 
 
 
  1. /* 
  2. 函数:BoxGUI(unsigned char *title)  
  3. 功能:在LCD上产生覆盖屏幕的桌面 
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值