#申请原创# @21小跑堂
一.GUI Guider介绍 GUI Guider是NXP在2021年推出的专门为LVGL开发设计打造的一款快速在NXP官方的开发板上进行图形化开发的方案,可以将上位机设计器里的设计方案完全一摸一样的跑在MCU中。
目前支持了其下的IMX-RT系列,和最新的LPC55XX系列,这些芯片也都是最近几年NXP新发布的芯片。 最新的安装包可以从下面链接获取:https://www.nxp.com/design/software/development-software/gui-guider:GUI-GUIDER 目前是支持到了LVGL8,同时也兼容之前的LVGL7的。如果我们不使用其官方的开发板,他也是可以单独生成代码,可以供我们进行替换,我们只需要掌握基础的LVGL移植,然后把其生成的代码进行替换,就能在别的平台上使用了,后期我们可以尝试下在STM32上进行移植测试。 二.IMX RT1062开发板介绍 本次我们开发选择其官方类似的板子,正好我们也测试下在其他板子上怎么修改。这次的开发板是由腾讯物联网团队联合NXP,和厚德物联网开发的。
这张是渲染图,我们这款选择的MCU是IMXRT1062。 开发板特性:
- 内置TencentOS Tiny开源物联网操作系统。
- 核心板采用的RT1062处理器属于i.MX RT 系列 MCU,是由 NXP 推出的跨界处理器,跨界是指该系列MCU的定位既非传统的微控制器、也非传统的微处理器,i.MX RT 系列 MCU 则综合了两者的优势,既具备高频率(最高主频600M)、高处理性能,也具备中断响应迅速、实时性高的特点。
- 1M RAM 16M SDRAM 64MB qspi flash 128MB spi flash。
- 板载Type-C接口CMSIS DAP仿真器。
- 板载PCIE接口,可扩展4G类物联网模组。
- 板载物联网俱乐部WAN Interface接口,可支持NB-IoT、WiFi、4G cat1、LoRa等模组。
- 板载物联网俱乐部E53 Interface接口,可扩展全系E53传感器。
- 板载标准24P DVP摄像头接口,可支持最高500万像素摄像头。
- 板载RGB显示接口,可转换HDMI输出。
- 板载高性能音频解码芯片,可做语音识别测试。
- 预留SD卡、用户按键、SPI Flash。
上述是其板载资源和IMXRT这款处理器的简单介绍,可以看到这款单片机的性能还是很强的,同时板载外设资源也是非常丰富的,其支持通过ESP8266联网传输数据,也支持外界其他模组进行通信,同时可以连接摄像头进行实时的显示,后期也可以利用NXP官方开发的EIQ平台进行识别测试。本次我们主要是外接了一款24位的RGB屏幕进行LVGL测试。 屏幕信息如下:
是一款800*480分辨率的,电容触摸屏,比官方的480*272分辨率要高出很多,所以我们也需要对生成代码进行修改才能更好的使用它。 三.使用GUI Guider生成的LVGL代码修改 我们先安装完成GUI Guider,然后打开软件进行代码生成。
打开后就直接弹出需要配置生成代码工程的界面,我们可以在右侧打开历史工程,也可以通过左侧进行选择开发板,然后底部配置我们的屏幕一些参数,当然对于官方的开发板,选在这些只是修改了设计器的分辨率,底层的东西是为修改的,还需要我们自己手动选择的。
我们先选择板子,我们选在MIMXRT1062XXXXA,然后右侧会出现信息,提示屏幕分辨率使用的操作系统,这里官方还是支持传统的OS,FreeRTOS。
然后我们重新定义分辨率。换成800*480。
生成之后就比较简单了,可以看到哦左侧是LVGL的一些控件,可以拖拽到中间,所见即所得的开发方式,同时这个是支持模拟的,可以在上位机上直接先模拟测试。右侧是控件一些属性等。
简单放置一个label,修改下内容后我们就可以进行运行模拟器,也可以导出平台工程,就是我们的IAR或者keil,还有其官方的mcux工具,这里我们选择keil把,这样我们开发起来比较方便。
导出他会自动编译,然后烧写,但是我们先不烧写,因为屏幕不是官方的,所以我们需要修改工程。然后再下载进去。
我们打开工程目录看下有什么东西,挨个解析下吧,首先,custom这里面是不需要进行修改的,接下来的deploy里面就是工程,你导出什么工程里面会有文件夹对应,下面的generated是比较重要的,LVGL运行的界面就是在这里面,如果移植就是把这个拉出来即可,下面的import是字体文件,lvgl和lvgl-simulator这个一个是官方源码,一个就是模拟器,temp就是一些头文件定义的地方,与lvgl配置有关。外部的文件一般是让你自己移植使用的,整个工程下是包含了这些内容的,所以我们直接打开工程修改即可。
我们需要修改里面的lvgl_support文件,这里主要进行屏幕初始化和一些配置,我们换屏就是在这边完成修改的。
我们修改屏幕配置参数,数据位修改成24位也就是RGB888的。
头文件中也修改下分辨率,这个我说了,在工程里配置是不管用的,必须还是自己手动修改才行。
屏幕改了,所以时钟也需要配置,换成我这样的就可以了。
接下来修改接口,我们是24位数据的,所以还需要增加几位管脚,直接在下面pin_mux文件中增加。
之后编译下,没问题烧写测试,看下效果吧,
可以看到烧录进去的效果和电脑端的效果是一致的,也完成了我们所见即所得的开发流程,这里面我们需要先了解屏幕接口知识,主要是屏幕是什么样的接口是RGB888还是RGB565的接口,还有就是一些管脚的配置都要自己提前掌握,最后修改的内容也都是按照屏幕来进行的。 四.附件工程
这里我把我修改的工程传上来,大家可以根据屏幕进行修改即可。
|
GUI Guider解放开发者,作者成功使用GUI Guider工具在IMXRT1062上移植了其他屏幕,对初识GUI Guider的朋友具有借鉴意义。