发 帖  
原厂入驻New

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

2020-9-2 14:34:12  154 GUI 单片机 人机界面
分享
1
本帖最后由 LONGSHEN1 于 2020-9-2 07:17 编辑

开源小型 GUI,只需要两个文件 gui.c、gui.h

一、资源要求
估算最低硬件要求:
ROM 13K
RAM 2K

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

四、移植说明

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

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

4.3、初始化GUI就完成移植了
1599028600(1).png

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

五、GUI函数介绍

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

5.1、例如建立一个窗口,下图为代码和显示效果:
1599029452(1).png
1599029702(1).png
注意此时只是简单的完成window1控件定义,LCD还未显示绘制窗口,要显示窗口必须在主循环或者定时中断中调用  UG_Update()

5.2、还有就是实现窗口内控件的回调点击处理函数,如下:
图片1.png
5.3、窗口控件管理
窗口控件管理:你在一个窗口中需要几个空间就要定义几个空间的相关类型变量定义,其中obj_buff[]数组用于记录你这个窗口中的空间,以数组方式管理和检索这些控件;一个窗口中可以容纳N个控件,由宏开关MAX_OBJECTS控制;

六、 如何实现触摸控制

如下代码所示,先获取触摸坐标,然后确认触摸状态为按下,调用UG_TouchUpdate更新坐标信息,然后UG_Update()里面会处理触摸信息,按下的相关控件会调用回调函数处理,例如上面描述的回调函数window_1_callback,里面有判断是哪个控件按下,然后处理对应的函数。
图片2.png
具体详细的说明请参考移植文档说明。

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

GUI移植和使用说明.pdf

下载积分: 积分 -1 分

1.47 MB, 下载次数: 0, 下载积分: 积分 -1 分

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /8 下一条

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