大家好,我是zhengn。
嵌入式大杂烩周记主要是一些实用项目学习分享,每周一篇,每篇一个主题。
内容主要来源于我们之前收集的资料:
https://gitee.com/zhengnianli/embedsummary
本期主角:linglonggui 玲珑gui是高效的界面开发解决方案。
代替串口屏、组态,降低产品成本,产品软硬件自主可控。 配套界面开发软件,图形化编辑界面,生成c代码,直接和用户产品代码结合。 配套下载升级软件和bootloader,解决产品升级功能和图片下载问题。 玲珑gui源码地址:
https://gitee.com/gzbkey/linglonggui
license:apache license, version 2.0 + 附加协议。
关于开源软件协议相关文章:常用的开源协议有哪些?
教程链接:
https://www.yuque.com/books/share/3317aaa7-f47f-4bfd-a4c2-7e64e7f1c4be
linglonggui的使用 下面,我们通过一步一步地实践来认识认识linglonggui。
其实我们可以不下载源码,仅下载linglongguibuildertool工具即可,linglongguibuildertool是linglonggui配套的界面开发软件,通过拖拽控件的方式设计界面并生成代码。
注意:以下操作基于linglongguibuildertool_2022.1.18版本,不同的linglongguibuildertool版本可能操作不一样。
1、linglongguibuildertool里自定义屏幕分辨率 linglonggui的作者有自己设计了几款开发板:
其linglongguibuildertool工具默认只支持这几款开发板。linglongguibuildertool安装路径中的配置文件devicetype.ini中的内容如:
温馨提示:ini配置文件相关推文可转至嵌入式开发小记,实用小知识分享
下面的操作中,我们没有使用官方开发板来做实验,所以需要在配置文件里新增我们开发板的配置。我们使用小熊派iot开发板来做实验,添加的内容如:
2、实践 实践步骤,上面的教程写得很清楚,下面跟着走一遍:
(1)准备一份lcd显示的例程。
(2)keil设置
--no-multibyte-chars --locale=english
ac5必须填入--no-multibyte-chars,ac6则不需要
(3)启动gui builder,keil -- tools --linglongguibuilder
新建一个ui file,然后拖动控件设计我们的界面:
设计完成后 保存文件及工程 ,然后点击左上角绿色三角形按钮或者点击tool->generate可生成对应gui代码源文件存放于我们的工程目录下及自动添加到工程里:
编译看看有没有报错:
如果报大量错误的话看看keil options for target是否按照上面的步骤进行修改。如果报如下错误:
把ll_config.h里的宏 use_llgui_ex 屏蔽掉即可:
编译报了一些警告,这些警告是llgui相关的,一些变量定义未使用等警告,我们这里不管它们,也可以在keil options for target -- c/c++ -- misc controls加入如下内容屏蔽相关警告编号的警告:
--diag_suppress=xxx (这里的xxx表示警告的编号)
比如屏蔽掉550号警告:
--diag_suppress=550
相关内容可参考文章:
https://www.cnblogs.com/svchao/p/13917877.html
编译未报错我们再往下看。
(4)修改llguiuser下的ll_config.c文件
修改如:
ll_config.c添加lcd.h包含:
(4)修改ll_config.h中的屏幕参数
(5)增大堆的大小
否则可能无法正常显示:控件无法显示或显示不全。
(5)在main.c中添加如下内容
#include ui_test.h
int
main
(void)
{
ui_testinit();
while
(
1
)
{
}
}
编译、下载即可看到我们刚才在linglongguiguildertool里设计的界面了:
通过上面的操作,我们发现linglonggui很容易地移到我们的工程里。
对比其它gui,我们移植其它gui时,可能需要自己新建、复制一些文件夹/文件到我们的工程目录下,再手动添加到keil工程里,再挨个添加头文件包含路径,这些操作挺烦人的。
而使用linglonggui时,通过linglongguiguildertool可以很方便地设计我们的ui界面、生成代码并自动添加到keil工程工程中,省了不少事!
另外,还有很方便的一点:
当linglonggui远程仓库有更新时,可以直接在生成的linglonggui文件夹下通过git来拉取最新代码:
linglonggui现在还处于起步阶段,还在不断完善优化中,势头还可以,大家可持续关注。
以上就是本次的分享,我们下期见~
keil options for target -- c/c++ -- misc controls 填入
keil options for target -- c/c++ -- 勾选c99
POE网络变压器:常用网络变压器POE电流传输路径
水域和饮用水源管理的仪器仪表的运用
带隙基准的高阶温度补偿
在TinyOS组件架构基础上实现CC2430芯片的节点定位设计
微软宣布即将推出新的Dynamics 365 AI应用
什么是LingLongGUI?
SIMV无纺布表面瑕疵检测设备的原理及功能
华为mate10什么时候上市?华为mate10最新消息:华为Mate10来救驾兄弟P10:全面屏+摄像头+5G网络
浅谈HFI谐波滤波器的功能及应用
哪家的智能化数控机床性价比高?
解决方案|医疗设备行业数字化采购管理系统解决方案
新功能发布 | TSMaster工具箱集成开发环境系列2-工具箱极简开发流程
中国十大专业音响品牌大全
出色的无人飞行器解决方案
Cirrus Logic MFi耳机开发套件简化Lightning音频配件设计
特思嘉电子拓展国内市场
5G即将到来 ETM制造商如何从中受益
测量MAX999比较器的输出抖动
XR Games获150万英镑融资 专注于开发IP授权的VR/AR游戏
企业用户选购万能试验机时,需要注意哪些因素?售后、性能、量程