痞子衡嵌入式:使用恩智浦GUI Guider快速创建全新LCD屏示例工程的步骤
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是使用恩智浦GUI Guider快速创建全新LCD屏示例工程的步骤。
在痞子衡旧文 《在i.MXRT1170上快速点亮一款全新LCD屏的方法与步骤》 里,痞子衡介绍了在官方 SDK 裸机驱动 elcdif 示例工程基础上做修改以支持一款全新 LCD 屏的方法,那篇文章主要涉及得是对于 LCD 驱动 IC 的底层适配改动。今天我们在其基础之上尝试用恩智浦 GUI Guider 工具快速创建这款 LCD 屏(深圳柯达科电子生产的 KD050FWFIA019-C019A)的 LVGL 框架下的示例工程。
一、GUI Guider简介
LVGL 是一个适用于各种嵌入式平台和显示器的开源且免费的 GUI 框架库,其第一个版本于 2016 年开源在 github 上。我们知道嵌入式 GUI 应用开发很大的工作量在于 UI 界面的设计,一个成熟的 GUI 框架通常都自带配套的 UI 界面编辑工具,但是 LVGL 在 UI 工具方面是比较匮乏的,直到 2022 年初官方才找了家第三方公司合作推出了 SquareLine Studio,并且不幸得是 2024 年 2 月,LVGL 已经结束了和 SquareLine Studio 的合作。
恩智浦作为 LVGL 官方合作伙伴,在 LVGL 的支持上投入了不少精力,正因为官方 UI 工具的匮乏,恩智浦便开发了 GUI Guider 工具(第一个版本发布于 2021 年初),借助 GUI Guider 的拖放编辑器可以轻松使能 LVGL 的众多特性,如小部件、动画和样式来创建 GUI,而只需少量代码或根本无需任何代码。
GUI Guider 支持了众多恩智浦 MCU 开发板以及一些官方指定的 LCD 屏,其生成的示例工程底层代码也是基于官方 SDK。其软件版本对应关系可以在工具菜单栏 Help->Release Note 下找到:
二、GUI Guider下创建工程
痞子衡安装得是最新的 GUI Guider v1.7.0-GA,让我们打开这个工具创建初始工程,前两步分别是选 LVGL 版本(v7/v8)以及 MCU 板卡(如果是自制板卡,只需要选对 MCU 型号即可),这里痞子衡选择了 LVGL v8 以及 MIMXRT1170-EVKB。
第三步选择模板的时候,有4种选择,EmptyUI 就是纯空界面,Widget 是一些典型的简单界面模板,Application 是一些复杂的综合应用界面模板,Local Projects 是导入本地已有的用户工程界面模板。因为只是做一个简单示例,痞子衡这里选择了 EmptyUI:
第四步(也是创建工程的最后一步)是设置 LCD 屏属性,因为我们用得是新屏,所以在 Panel Type 里需要选择 Custom,然后手动输入屏的名称(会在代码里生成相应宏 DEMO_PANEL_KD050FWFIA019)以及尺寸,最后点击 Create 按钮便能生成初始工程。
- Note: 这里设置的 LCD 屏尺寸(宽高)在工程生成之后无法再更改。
三、GUI Guider里设计界面
现在来到了 GUI 设计主界面,因为只是简单示例,我们随便拖动一个 Label 控件,里面写入 Hello World 就算设计好界面了。界面设计完成需要在右上角点击 Generate Code -> C 以生成相应界面构建 C 代码。
四、修改MCU工程底层驱动
现在让我们打开创建 GUI 工程指定的文件路径,找到如下工程目录,rt1170_qsg_proj.guiguider 便是 GUI 设计工程文件,一级目录下都是跟 GUI 相关的文件夹(\generated 存放工具生成的相关字库控件资源文件,\custom 里可以自行添加用户界面响应相关逻辑代码),\sdk 文件夹下则是最终 MCU 工程(MCUX/IAR/MDK/GCC 均支持)。
因为 GUI Guider 已经将所需的源文件全部聚合在这个目录下,所以我们不用额外再下载任何软件包。这时候你可以选择你擅长的 IDE 去做进一步开发,痞子衡用 IAR 比较多, 所以便打开了 \GUI-Guider-Projects\rt1170_qsg_proj\sdk\iar\lvgl_guider_cm7.eww 工程。
- Note:除了 MCUX 的工程可以在导入时另选官方 SDK 版本,其余 IDE 的 SDK 版本均是确定的。如需其它 SDK 版本,需要手动更新 \GUI-Guider-Projects\rt1170_qsg_proj\sdk\Core 里文件。
当前 GUI Guider 生成的 MCU 工程均是 FreeRTOS 版本,没有提供裸机版本。无论工程是否基于 RTOS,这并不影响我们移植全新 LCD 屏的驱动。按照痞子衡旧文 《在i.MXRT1170上快速点亮一款全新LCD屏的方法与步骤》 里的步骤,将对 elcdif_support.c/h 的改动全部放到 display_support.c/h 里,再添加 fsl_ili9806e.c/h 文件到 lvgl_guider_cm7 工程里便大功告成了。此外由于那篇文章只是点屏,没有涉及触摸 IC 的驱动,所以这里暂时也不用考虑使能触摸功能,可将 DEMO_InitTouch() 函数的调用先注释掉。
\GUI-Guider-Projects\rt1170_qsg_proj\sdk\Core\board\display_support.c
\GUI-Guider-Projects\rt1170_qsg_proj\sdk\Core\board\display_support.h
\GUI-Guider-Projects\rt1170_qsg_proj\sdk\Core\video\fsl_ili9806e.c
\GUI-Guider-Projects\rt1170_qsg_proj\sdk\Core\video\fsl_ili9806e.h
给板卡供电,连接上新屏 KD050FWFIA019,编译下载修改后的 lvgl_guider_cm7 工程,这时候就能看到 LVGL 版本的 hello world 正常显示了:
至此,使用恩智浦GUI Guider快速创建全新LCD屏示例工程的步骤痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:使用恩智浦GUI Guider快速创建全新LCD屏示例工程的步骤的更多相关文章
- 痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南
NXP MCU Boot Utility English | 中文 1 软件概览 1.1 介绍 NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP M ...
- 痞子衡嵌入式:恩智浦MCUX SDK在GitHub上线了
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是恩智浦MCUX SDK 在GitHub上线一事. 其实在差不多一个月前(2021年1月6日),恩智浦MCUX SDK就在GitHub悄悄上 ...
- 痞子衡嵌入式:恩智浦SDK驱动代码风格、模板、检查工具
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是恩智浦 SDK 驱动的代码风格. 上周痞子衡受领导指示,给 SE 同事做了一个关于 SDK 代码风格的分享.随着组内新人的增多,这样的培训 ...
- 痞子衡嵌入式:恩智浦SDK驱动代码风格检查工具预览版
大家好,我是痞子衡,是正经搞技术的痞子. 接上文 <恩智浦SDK驱动代码风格.模板.检查工具> 继续聊,是的,过去的三天里我花了一些时间做了一个基于 PyQt5 的 GUI 工具,可以帮助 ...
- 痞子衡嵌入式:恩智浦经典LPC系列MCU内部Flash IAP驱动入门
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦经典LPC系列MCU内部Flash IAP驱动. LPC 系列 MCU 是恩智浦公司于 2003 年开始推出的非常具有代表性的产品 ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU特性介绍(2)- RT685EVKA性能实测(Dhrystone)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的性能. 在前面的文章 i.MXRTxxx微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2018 ...
- 痞子衡嵌入式:恩智浦机器视觉模块OpenMV-RT那些事(1)- 初体验
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是机器视觉模块OpenMV-RT初体验. 近些年机器视觉应用一直是个很火的方向,想象一下机器如果能长上"眼睛",是不 ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(3)- Serial ISP模式(blhost)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的Serial ISP模式. 在上一篇文章 Boot配置(ISP Pin, OTP) 里痞子衡为大家 ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(4)- OTP及其烧写方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的OTP. 在i.MXRTxxx启动系列第二篇文章 Boot配置(ISP Pin, OTP) 里痞子 ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(8)- 从Serial(1-bit SPI) NOR恢复启动
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的1-bit SPI NOR恢复启动. 在前几篇里痞子衡介绍的Boot Device都属于主动启动的 ...
随机推荐
- [MySQL] 给root用户设置权限
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'roo ...
- axios请求失败,获取接口返回错误信息
一般vue项目都会对axios进行封装,后台统一规范默认让服务器对所有请求都返回成功,然后在成功的对象里面包装一层对象result,里面也包含code,msg,result信息,前端拿这个result ...
- 【C语言进阶】【小项目】实现一个通讯录【C语言知识点汇总项目】通过这个项目,掌握C语言重要知识点
[C语言进阶][小项目]实现一个通讯录[C语言知识点汇总项目]通过这个项目,掌握C语言重要知识点 欢迎来到#西城s的博客,今天,博主带着大家用C实现一个通讯录!干货满满不要错过噢! 作者: #西城s ...
- Mac上SnailSvn checkout报错
- Power BI 12 DAY
电商平台流量分析 案例练习 参数建模 建模-->新建参数 新建度量值使用SWITCH函数将需要的指标数据化 15.关键指标 = switch([指标选择 值],1,[1.访客数合计],2,[2. ...
- MQTT-QoS与协议流程
QoS的报文收发流程 QoS 0 最多交付一次,消息有可能丢失,最低的QoS等级,没有任何的机制,不需要等待确认和重传,只要保证消息发送,也可能到达不了接收端 QoS0消息发送流程: 发送端调用API ...
- leetcode 将有序数组转换为二叉搜索树
给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树. 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树. 示例 ...
- 【手写信息搜集工具】ThunderSearch 闪电搜索器
ThunderSearch 闪电搜索器 项目地址:github Windows打包版 利用ZoomEye的官方api,结合开发文档,做了这么一个GUI界面的搜索器.目前支持查询host_search ...
- 运用 Argo Workflows 协调 CI/CD 流水线
Argo Workflows 是一个开源的容器原生工作流引擎,用于协调 CI/CD 在 Kubernetes 中的运作.它以 Kubernetes 自定义资源(CRD)的形式实现,使开发人员能够创建自 ...
- centos7.x及centos8.x安装新版docker
前置步骤 # 如之前安装过docker,请先删除 yum remove docker docker-common docker-selinux docker-engine centos7 # cent ...