1
前言說明
本章通過FRDM-MCXN947開發(fā)板與正點(diǎn)原子的TFTLCD進(jìn)行實(shí)踐
1.2模塊介紹
硬件:
FRDM-MCXN947開發(fā)板:
該開發(fā)板具有豐富的接口詳細(xì)可參考NXP官方網(wǎng)站,從下圖板載資源中可看出TFTLCD可以通過flexIO進(jìn)行驅(qū)動(dòng)。
FTLCD為正點(diǎn)原子并口屏:
軟件:
下拉RT-Thread代碼
1.3 軟件開發(fā)
編譯配置工具:env 從 RT-Thread 官網(wǎng)下載 Env工具(https://www.rt-thread.org/download.html)
代碼編輯器:vscode
下載器:使用LinkServer.exe命令下載,來自于下載Linkserver 1.4.85 installer for Windows (nxp官網(wǎng))
本人在vscode中編輯代碼,通過env工具來配置和編譯,在windows的PowerShell中使用LinkServer.exe命令來進(jìn)行燒錄。命令如下:
有簡單方式可以在vscode中配置tasks.json,在vscode中實(shí)現(xiàn)編輯、編譯和燒錄一站式操作,參見大佬文章:使用VSCode 搭建 RT-Thread 關(guān)于 NXP mcxn947 開發(fā)環(huán)境(二),(https://club.rt-thread.org/ask/article/e46d421071211221.html)本人比較懶,從里面搬了燒錄命令來使用了。
為啥不使用keil進(jìn)行開發(fā)?
主要原因是開發(fā)板一到手,下載的最新版并安裝了MCXN947_DFP的keil就鏈接不上板子,CMSIS-DAP鏈接過程中會(huì)報(bào)錯(cuò)如下:
我首先思考的是電腦驅(qū)動(dòng)不對,去官網(wǎng)下載了MCU-LINK_installer_3.133,在安裝過程會(huì)自動(dòng)安裝電腦的驅(qū)動(dòng)(當(dāng)然事后發(fā)現(xiàn),這個(gè)電腦驅(qū)動(dòng)過程其實(shí)不需要,會(huì)自動(dòng)裝),仍然不起作用!在MCU-LINK_installer_3.133目錄下兩個(gè)腳本,可更新板載下載器固件為JLINK方式,需要配合板子上J21跳線帽來操作。
操作步驟:1.安裝跳線帽;2.斷電重啟;3.運(yùn)行program_JLINK.c
md程序進(jìn)行固件更新;4更新完成后,需要取掉跳線帽,然后進(jìn)行斷電重啟,(板子上復(fù)位按鈕不行,必須斷電操作)??梢钥吹絢eil識別到JLINK:
燒錄過程中任然會(huì)有報(bào)錯(cuò):
經(jīng)過一番折騰之后,我將板載下載器固件更新回了CMSIS-DAP方式,采用了上述開發(fā)方法。
2
步驟說明
2.1 添加LCD驅(qū)動(dòng)與代碼修改
在ports目錄下添加了LCD驅(qū)動(dòng)和SConscript文件
添加完文件后,發(fā)現(xiàn)LCD驅(qū)動(dòng)任然沒有被編譯,主要原因是ports上一級目錄中的SConscript文件,沒有采用遍歷所有目錄下的SConscript文件的寫法
方法一:添加遍歷SConscript的寫法
方法二:參考其他BSP有在根SConscript文件中,單獨(dú)讀取board/ports/SConscript文件
在pin_mux.c中缺少對flexIO并口的配置,添加并口,CS,RS,RD,WR,ReSet引腳的配置,代碼如下:
2.2 編譯運(yùn)行程序
LCDTFT程序運(yùn)行.mp4 (https://club.rt-thread.org/file_download/15c229bf648c2991)
2.3 lvgl使用
在menuconfig中啟用lvgl
在applicaions中添加了lvgl相關(guān)的配置和接口文件
在lv_conf.h中定義了一下幾個(gè)宏定義
在lv_port_disp.c中定義了顯示分辨率、顯示buffer、顯示更新的回調(diào)函數(shù),并在lv_port_disp_init函數(shù)里進(jìn)行注冊
在回調(diào)函數(shù)里調(diào)用lcd驅(qū)動(dòng)里的區(qū)域填充函數(shù)
2.4 lvgl驗(yàn)證
跑一個(gè)benchmark看一看效果
sdf.mp4 (https://club.rt-thread.org/file_download/86b25c6fb1cde3d9)
lvgl跑出來的幀率為18
采用編譯優(yōu)化等級O1,導(dǎo)致LCD功能有問題,屏幕不顯示。于是LCD驅(qū)動(dòng)部分代碼采用O0,其他代碼采用O1,修改編譯腳本rtconfig.py,腳本默認(rèn)走的是debug分支,將其修改到release分支
當(dāng)然這個(gè)修改會(huì)對整個(gè)工程產(chǎn)生影響,需要在LCD驅(qū)動(dòng)部分編譯腳本中添加局部編譯參數(shù)
lvgl幀率提升至26
當(dāng)然嘗試了雙buf和優(yōu)化等級O3,幀率沒有再提高
-
TFT
+關(guān)注
關(guān)注
10文章
387瀏覽量
111989 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5380瀏覽量
100709 -
LVGL
+關(guān)注
關(guān)注
1文章
97瀏覽量
3461
發(fā)布評論請先 登錄
相關(guān)推薦
如何優(yōu)雅的在OpenMV上使用LVGL

如何在esp8266 Node MCU的硬件上部署LVGL
開源輕量級顯示框架LVGL簡介
開源輕量級顯示框架LVGL簡介
【FireBeetle 2 ESP32-S3開發(fā)板體驗(yàn)】基于GDI接口的高清IPS屏的LVGL使用(方法通用所有支持接口的屏)
使用全志R128將LVGL運(yùn)行在SPI TFT GUI上
全面解讀目前LVGL的應(yīng)用小知識

LuatOS之LVGL字體篇

LVGL系列(二)之二 LVGL常見問題解答 整理自官方文檔

esp8266 NodeMcu硬件環(huán)境下使用lvgl

LVGL 優(yōu)化幀率技巧

【開鴻智谷NiobeU4開發(fā)板免費(fèi)試用體驗(yàn)】移植LVGL

LVGL Simulation工程

Hi3861移植LVGL教程

如何在MDK中部署LVGL

評論