打印
[资料干货]

超轻量小型开源GUI、有效代码四千行左右、极易移植

[复制链接]
820|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
开源小型 GUI,只需要两个文件 gui.c、gui.h

一、资源要求
估算最低硬件要求:
ROM13K
RAM2K

二、开源地址

开源GUI地址
https://github.com/achimdoebler/UGUI
三、GUI框架
GUI 框架构成:
1、窗口:可以绘制多个窗口;
2、控件:支持窗口内显示其他控件如按钮、文本框等;
3、 事件处理:支持界面和用户交互操作,事情回调,如触摸事件等;
4、 接口函数:提供给开发者友好的接口;
5、扩展:用户可以自行修改源码添加其他控件。

四、移植说明

4.1、首先需要准备工程模板,然后就可以开始移植了。

4.2、构建下面三个函数,分别是画线、填充、画点函数,画点函数是最基本的,移植 UGUI 必须建立此函数。请注意,确认调用三个函数可以在显示屏正常显示。如下图所示:


4.3、初始化GUI就完成移植了


4.4、有些单片机自带图形加速器,需要注册以下函数并使能


五、GUI函数介绍

所有GUI函数说明可以参考官方手册

5.1、例如建立一个窗口,下图为代码和显示效果:


注意此时只是简单的完成window1控件定义,LCD还未显示绘制窗口,要显示窗口必须在主循环或者定时中断中调用  UG_Update()

5.2、还有就是实现窗口内控件的回调点击处理函数,如下:

5.3、窗口控件管理
窗口控件管理:你在一个窗口中需要几个空间就要定义几个空间的相关类型变量定义,其中obj_buff[]数组用于记录你这个窗口中的空间,以数组方式管理和检索这些控件;一个窗口中可以容纳N个控件,由宏开关MAX_OBJECTS控制;

六、 如何实现触摸控制

如下代码所示,先获取触摸坐标,然后确认触摸状态为按下,调用UG_TouchUpdate更新坐标信息,然后UG_Update()里面会处理触摸信息,按下的相关控件会调用回调函数处理,例如上面描述的回调函数window_1_callback,里面有判断是哪个控件按下,然后处理对应的函数。


具体详细的说明请参考移植文档说明。

具体的移植源代码和参考原理图可以前往电路城搜索
4.3寸tftlcd 电容彩色触摸屏 液晶模块支持多点触摸(电路图、提供开源GUI例程)  







GUI移植和使用说明.pdf

1.47 MB

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

16

帖子

1

粉丝