說是移植,實(shí)際上是添加柿餅庫到工程,并完成LCD驅(qū)動(dòng)和觸摸驅(qū)動(dòng)的對(duì)接,其中LTDC驅(qū)動(dòng)SDK中已經(jīng)完成了移植,RGB屏的移植主要就是時(shí)鐘頻率和屏幕面板參數(shù)的修改。對(duì)于其他屏幕則需要按照LCD設(shè)備框架的要求完成對(duì)接。所以說,只要完成了對(duì)LCD設(shè)備框架和touch設(shè)備框架的對(duì)接,移植過程就完成了90%。
說明
1 柿餅UI:
Persimmon 是一套運(yùn)行在RT-Thread嵌入式實(shí)時(shí)操作系統(tǒng)上的圖形用戶組件界面,用于提供圖形界面的用戶交互。它采用C++語言編寫,基于C語言實(shí)現(xiàn)的底層圖形像素引擎,為上層應(yīng)用提供了控件、窗口、signal/slot,手勢(shì)動(dòng)畫等機(jī)制。為了提高UI的開發(fā)靈活性、降低用戶開發(fā)時(shí)間和成本,Persimmon 提供了所見即所得的UI設(shè)計(jì)器。用戶可通過設(shè)計(jì)器輕松實(shí)現(xiàn)UI界面設(shè)計(jì),并利用JavaScript腳本實(shí)現(xiàn)對(duì)界面邏輯的控制。
2 ART-Pi
RT-Thread 團(tuán)隊(duì)精心準(zhǔn)備推出的極具擴(kuò)展性的 DIY 開源硬件。
準(zhǔn)備工作
工具:
RT-Studio RT-Thread推出的一站式IDE。
(下載鏈接:https://www.rt-thread.org/page/studio.html)
UI設(shè)計(jì)器 柿餅配套的設(shè)計(jì)器。
ART-Pi 本次移植需要的硬件平臺(tái)。
RGB屏幕 ART-Pi的lcd接口跟正點(diǎn)原子一樣,其他屏幕請(qǐng)看原理圖做專門的轉(zhuǎn)接板。
多媒體擴(kuò)展板 ART-Pi配套的多媒體擴(kuò)展板。
本次移植的RGB屏幕為正點(diǎn)原子 800x480分辨率的七寸屏,觸摸芯片為FT5426。
整個(gè)工程在art_pi_blink_led 基礎(chǔ)上移植,SDK版本為 v1.1.0。
下面對(duì)整個(gè)過程進(jìn)行說明。
1.新建工程
RT-Studio中安裝ART-Pi的sdk。新建一個(gè)art_pi_blink_led 工程。
2.添加柿餅庫
這里以Kconfig的方式添加柿餅庫文件,在文件art_pi_blink_ledlibrariesKconfig中添加下面的代碼。為方便復(fù)制,貼在圖下面。
config PKG_USING_PERSIMMON_SRC
bool “Using Persimmon Library”
select RT_USING_CPLUSPLUS
select PKG_USING_FASTLZ
select PKG_USING_EZXML
select RT_USING_I2C
default n
上面的配置是柿餅庫所依賴的軟件包和RTT的配置選型,簡(jiǎn)單說明一下,柿餅庫的使用需要依賴fastlz軟件包和ezxml軟件包,同時(shí)還需要開啟C++和i2c,否則編譯會(huì)報(bào)錯(cuò)。
添加完保存之后,點(diǎn)擊RT-Thread Setting
分別使能 LCD驅(qū)動(dòng),文件系統(tǒng)(flash),wifi,柿餅庫,ftp庫。
下圖為開啟LCD支持,這里指的是開啟外設(shè)ltdc支持,這樣系統(tǒng)啟動(dòng)后就會(huì)自動(dòng)注冊(cè)lcd設(shè)備供柿餅庫使用。
下圖為開啟wifi支持和flash文件系統(tǒng)支持,柿餅的UI文件需要在文件系統(tǒng)中加載,通過wifi聯(lián)網(wǎng)可以方便使用ftp庫傳輸U(kuò)I文件,非常方便。
下圖為開啟柿餅庫和ftp庫支持,前面添加的Kconfig代碼這個(gè)就以圖形配置的方式顯示,通過點(diǎn)擊就能使能。
設(shè)置lwip,ftp庫需要更多的資源配置,按照下圖配置lwip,不然傳輸過程會(huì)出現(xiàn)失敗的情況,配置好之后保存。
添加文件
上面幾個(gè)步驟只是添加了柿餅庫的文件,要想啟動(dòng)柿餅庫還需要添加額外的文件,在工程applications文件夾下添加啟動(dòng)柿餅UI所需要的文件,如下圖所示。
在main.c中添加使能ftp的相關(guān)代碼。
保存配置并編譯
可以看到,柿餅庫成功鏈接,編譯尺寸還是比較大的。
下載
此時(shí)下載之后屏幕點(diǎn)亮,還不能顯示界面,這是因?yàn)槭溜灥腢I文件還沒有加入到flash文件系統(tǒng)中,下面加入柿餅UI文件,采用ftp協(xié)議傳輸柿餅UI文件。
使用命令 wifi join 《ssid》 《password》連接網(wǎng)絡(luò)。
待獲取IP后連接ftp服務(wù)器,如下圖所示:
其中IP為實(shí)際的IP地址,用戶名和密碼為 loogg,端口號(hào)為21。
將test文件夾上傳到flash文件系統(tǒng)中。
傳輸完成后,執(zhí)行命令reboot重啟系統(tǒng)
執(zhí)行命令persim_start啟動(dòng)柿餅UI,可以看到屏幕上有圖像產(chǎn)生,但是顯示不對(duì),這是由于參數(shù)配置的問題。
按照下圖文件修改工程中的屏幕參數(shù)配置,本人用的正點(diǎn)原子屏幕的配置參數(shù)如下:
重新編譯下載:
執(zhí)行命令 persim_start,可以看到界面已經(jīng)正常顯示了。
如果你的屏幕和本人的不一樣,請(qǐng)參考屏幕的面板手冊(cè)修改上面的參數(shù),這里說明一下LTDC時(shí)鐘配置:在H7的手冊(cè)上可以看到
LTDC外設(shè)的時(shí)鐘來自pll3_r_ck,這個(gè)時(shí)鐘由晶振經(jīng)過PLL3提供,如下圖:
在board.c中有如下代碼,經(jīng)過計(jì)算LTDC的時(shí)鐘為:25M(晶振)/5*160/24 = 33.3MHz,符合屏幕要求。如果這里計(jì)算的頻率和你的屏幕不匹配,請(qǐng)按需修改,同時(shí)修改lcd_port.h中面板的其他參數(shù)。
添加觸摸
下載軟件包,正點(diǎn)原子這塊屏所實(shí)用的觸摸IC為ft5426,該觸摸芯片本人已制作成軟件包,所以直接添加就可。
添加添加軟件包和touch.c文件,如下圖:
使能觸摸的初始化代碼:
該觸摸芯片采用i2c控制,根據(jù)引腳設(shè)置配置使能i2c1,如下圖:
保存,編譯下載:
啟動(dòng)柿餅UI,點(diǎn)擊按鈕,觸摸OK
如果你用的觸摸IC和本人的不一樣,請(qǐng)先根據(jù)touch框架移植好觸摸驅(qū)動(dòng),最好做成軟件包的方式也方便他人使用,然后在touch.c文件中添加相應(yīng)的初始化函數(shù),其中柿餅UI的觸摸事件上報(bào)的代碼已經(jīng)添加不需要修改。
原文標(biāo)題:柿餅UI在ART-Pi上的移植
文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
lcd
+關(guān)注
關(guān)注
34文章
4438瀏覽量
168397 -
驅(qū)動(dòng)
+關(guān)注
關(guān)注
12文章
1851瀏覽量
85647
原文標(biāo)題:柿餅UI在ART-Pi上的移植
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論