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