大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是使用恩智浦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屏示例工程的步骤的更多相关文章

  1. 痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南

    NXP MCU Boot Utility English | 中文 1 软件概览 1.1 介绍 NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP M ...

  2. 痞子衡嵌入式:恩智浦MCUX SDK在GitHub上线了

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是恩智浦MCUX SDK 在GitHub上线一事. 其实在差不多一个月前(2021年1月6日),恩智浦MCUX SDK就在GitHub悄悄上 ...

  3. 痞子衡嵌入式:恩智浦SDK驱动代码风格、模板、检查工具

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是恩智浦 SDK 驱动的代码风格. 上周痞子衡受领导指示,给 SE 同事做了一个关于 SDK 代码风格的分享.随着组内新人的增多,这样的培训 ...

  4. 痞子衡嵌入式:恩智浦SDK驱动代码风格检查工具预览版

    大家好,我是痞子衡,是正经搞技术的痞子. 接上文 <恩智浦SDK驱动代码风格.模板.检查工具> 继续聊,是的,过去的三天里我花了一些时间做了一个基于 PyQt5 的 GUI 工具,可以帮助 ...

  5. 痞子衡嵌入式:恩智浦经典LPC系列MCU内部Flash IAP驱动入门

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦经典LPC系列MCU内部Flash IAP驱动. LPC 系列 MCU 是恩智浦公司于 2003 年开始推出的非常具有代表性的产品 ...

  6. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU特性介绍(2)- RT685EVKA性能实测(Dhrystone)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的性能. 在前面的文章 i.MXRTxxx微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2018 ...

  7. 痞子衡嵌入式:恩智浦机器视觉模块OpenMV-RT那些事(1)- 初体验

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是机器视觉模块OpenMV-RT初体验. 近些年机器视觉应用一直是个很火的方向,想象一下机器如果能长上"眼睛",是不 ...

  8. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(3)- Serial ISP模式(blhost)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的Serial ISP模式. 在上一篇文章 Boot配置(ISP Pin, OTP) 里痞子衡为大家 ...

  9. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(4)- OTP及其烧写方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的OTP. 在i.MXRTxxx启动系列第二篇文章 Boot配置(ISP Pin, OTP) 里痞子 ...

  10. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(8)- 从Serial(1-bit SPI) NOR恢复启动

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的1-bit SPI NOR恢复启动. 在前几篇里痞子衡介绍的Boot Device都属于主动启动的 ...

随机推荐

  1. C/C++ 文件与指针操作笔记

    创建临时文件 #include <stdio.h> int main(int argc, char *argv[]) { FILE *temp; char c; if ((temp = t ...

  2. laravel生成二维码,并添加背景图片,图标logo

    1.安装组件 composer require simplesoftwareio/simple-qrcode 1.3.* 在 config/app.php 注册服务提供者: SimpleSoftwar ...

  3. 资深工程师 VSCode C/C++ 必备开发插件

    1.前言 俗话说"工欲善其事,必先利其器",下面介绍几个VSCode提高开发效率的插件,资深工程师必备. 2.基础插件 2.1.Chinese(Simplified) vscode ...

  4. Java 将PDF转为PowerPoint (2行代码)

    通过编程实现PDF转PPT的功能,可以自动化转换过程,减少手动操作的工作量,并根据需要进行批量转换.将PDF文件转换为PPT文档后,可以利用PPT的丰富功能和动画效果,达到更好的演示效果. 在Java ...

  5. electron 安装不同的版本的方法

    1.官网:http://www.electronjs.org/ 2.思考,既然是npm 安装,那么肯定也在 npm中央仓库有,那么去中央仓库看下: npm i -D electron@11.0.4

  6. NC14419 线路规划

    题目链接 题目 题目描述 Q国的监察院是一个神秘的组织. 这个组织掌握了整个帝国的地下力量,监察着Q国的每一个人. 监察院一共有N个成员,每一个成员都有且仅有1个直接上司,而他只听从其上直接司的命令. ...

  7. NC24949 [USACO 2008 Jan S]Running

    题目链接 题目 题目描述 The cows are trying to become better athletes, so Bessie is running on a track for exac ...

  8. java 如何实现开箱即用的敏感词控台服务?

    sensitive-word-admin sensitive-word-admin 是基于 sensitive-word 实现的, 一款开箱即用的敏感词控台服务. 特性 基本的 CRUD 开箱即用的配 ...

  9. 【Unity3D】点选物体、框选物体、绘制外边框

    1 需求描述 ​ 绘制物体外框线条盒子 中介绍了绘制物体外框长方体的方法,本文将介绍物体投影到屏幕上的二维外框绘制方法. 点选物体:点击物体,可以选中物体,按住 Ctrl 追加选中,选中的物体设置为红 ...

  10. TCP与UDP异同

    TCP与UDP异同 TCP/IP模型的运输层有两个不同的协议:UDP用户数据报协议与TCP传输控制协议. 相同点 TCP与UDP都是运行在运输层的协议. TCP与UDP的通信都需要开放端口. 不同点 ...