軟硬件介紹:Ubuntu 20.04 ARM 和(Cortex-A53架構)開發板
-
基本原理
LVGL圖形庫是支持使用Linux系統的Framebuffer幀緩沖設備實現的,如果想要實現在ARM開發板上運行LVGL圖形庫,那么就需要把LVGL圖形庫提供的關于幀緩沖設備的案例源碼進行移植。
- ARM開發板搭載的Linux系統,并且開發板板載了7寸的LCD屏和電容式觸摸屏,如下:
-
(只想了解如何使用可以不看,這里的源碼可以在文章最后的百度網盤找到)閱讀LVGL關于Linux幀緩沖設備的技術博客,下載要移植的源碼和了解要修改的內容!
由于git采用的分支管理,所以下載的案例源碼中缺少lvgl和lvgl_drivers的分支源碼,所以需要從GitHub中下載這兩個分支源碼,如下圖:
2.把兩個分支源碼包下載到本地之后,需要對兩個源碼包進行解壓,再把解壓之后的所有內容分別拷貝到工程中lvgl文件夾和lvgl_drivers文件夾中即可,這樣就完成了源碼的整合!!
(1)根據LVGL官方的提示把兩個分支源碼包中的配置文件替換到主源碼包根目錄下,如下:
注意:要把lvgl文件夾中的lv_conf_template.h和lv_drivers文件夾中的lv_drv_conf_template.h這兩個文件拷貝到工程根目錄下,并且把lv_conf_template.h改名為lv_conf.h,把lv_drv_conf_template.h改名為lv_drv_conf.h。
(2)根據LVGL官方的提示來修改主源碼包的lv_conf.h配置文件中的部分參數,具體如下圖:
(3)根據LVGL官方的提示來修改主源碼包的lv_drv_conf.h配置文件中的部分參數,如下圖:
(4)由于開發板采用ARM平臺,所以需要修改案例源碼中Makefile腳本文件的編譯工具鏈
注意:(5)把整個源碼工程放入Linux系統中,并切換到源碼工程中對源碼進行編譯,輸入: make
可以看到對工程進行編譯時會提示以下錯誤:cc: error: unrecognized command line option ‘-Wshift-negative-value’
這個錯誤原因是指Linux系統中使用的arm-linux-gcc交叉編譯器不支持這個選項,所以解決方案是更換更高版本的arm-linux-gcc編譯器或者從Makefile腳本文件中把這句話刪掉。
從Makefile腳本文件中刪掉 “-Wshift-negative-value”之后,保存腳本后對工程再次編譯即可。
如果沒有任何其他錯誤提示,則說明源碼編譯通過,此時可以把生成的可執行文件下載到ARM開發板測試。
(6)切換到項目源碼的 build/bin目錄下可以看到一個名稱叫做demo的可執行文件,如下:
注意:(7)把可執行文件下載到ARM開發板中,修改可執行文件的權限,并運行可執行文件觀察!
可以看到,ARM開發板確實可以顯示LVGL圖形庫提供的例程,但是此時是無法通過觸摸屏切換界面的,原因是在main.c的循環中沒有調用一個名稱叫做lv_tick_inc()的函數接口。
整個?LVGL圖形庫的運轉都是基于 LVGL圖形庫中定義的 ”Timer“ 定時器,系統需要給 LVGL 一個 ”心跳“,LVGL圖形庫框架才可以正常的運轉起來。而lv_tick_inc()就是用于系統告知LVGL圖形庫時間的函數接口,該函數是以毫秒為單位的。
修改main.c之后重新對工程進行編譯,再把生成的可執行文件下載到開發板驗證即可!
源碼百度網盤鏈接:通過網盤分享的文件:LVGL.rar
鏈接: https://pan.baidu.com/s/1yfsIgFq3C9LqzFbOUDFJTg?pwd=hfym 提取碼: hfym?
--來自百度網盤超級會員v2的分享