在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用GUI Guider工具開發嵌入式GUI應用(3)

冬至子 ? 來源:安德魯的設計筆記本 ? 作者:安德魯蘇 ? 2023-08-16 14:39 ? 次閱讀

引言

本節講述在GUI Guider中,應用各種UI的基本元素,并順利部署到MCU的過程。在GUI Guider中使用各LVGL的組件時,將會涉及到GUI Guider的操作,以及將某些組件額外生成的源碼添加到Keil工程中。至于具體產品中的UI應用,可以是這些基本UI元素的組合使用,以實現更加豐富的顯示效果。

在本文中,將說明使用通過GUI Guider創建并使用LVGL的label組件顯示字符信息

在GUI Guider工程中創建label組件

在新建GUI Guider工程搭建MCU運行時的框架工程時,曾使用了label組件實現在屏幕上顯示一個“Hello World”字符串的演示效果。Label是GUI Guider中最簡單的組件,可用于顯示字符。

當需要為某個頁面添加一個顯示字符串的對象時,可在編輯區域左邊的工具欄中選擇label按鈕,此時,在組件窗口中就可以看到,當前的頁面screen下出現了一個label_1的對象。如圖x所示。

image.png

figure-gui-using-label-1
圖x 新增label對象

雙擊在當前頁面上出現的label對象,可以在編輯區域的右側激活該對象的屬性設置對話框,如圖x所示。在其中,可以執行該對象的名字、位置、文本內容、字體、顏色等屬性。當然,既然是在圖形編輯界面,對象的位置也可以通過在圖形編輯區拖拽對象來調整。

image.png

figure-gui-using-label-2
圖x 編輯label對象屬性

然后,重新生成代碼。在運行時的Keil工程已經包含了靜態頁面的源文件,因此不用額外再執行添加文件的操作。但實際上,這里新生成的源碼位于./gui/generated/setup_scr_screen.c文件中。有源碼如下:

/*  
 * Copyright 2023 NXP  
 * SPDX-License-Identifier: MIT  
 * The auto-generated can only be used on NXP devices  
 */  
  
#include "lvgl.h"  
#include < stdio.h >  
#include "gui_guider.h"  
#include "events_init.h"  
#include "custom.h"  
  
  
void setup_scr_screen(lv_ui *ui){  
  
 //Write codes screen  
 ui- >screen = lv_obj_create(NULL);  
 lv_obj_set_scrollbar_mode(ui- >screen, LV_SCROLLBAR_MODE_OFF);  
  
 //Set style for screen. Part: LV_PART_MAIN, State: LV_STATE_DEFAULT  
 lv_obj_set_style_bg_color(ui- >screen, lv_color_make(0xff, 0xff, 0xff), LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_bg_grad_color(ui- >screen, lv_color_make(0x21, 0x95, 0xf6), LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_bg_grad_dir(ui- >screen, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_bg_opa(ui- >screen, 0, LV_PART_MAIN|LV_STATE_DEFAULT);  
  
 //Write codes screen_label_1  
 ui- >screen_label_1 = lv_label_create(ui- >screen);  
 lv_obj_set_pos(ui- >screen_label_1, 51, 68);  
 lv_obj_set_size(ui- >screen_label_1, 218, 43);  
 lv_obj_set_scrollbar_mode(ui- >screen_label_1, LV_SCROLLBAR_MODE_OFF);  
 lv_label_set_text(ui- >screen_label_1, "Hello World");  
 lv_label_set_long_mode(ui- >screen_label_1, LV_LABEL_LONG_WRAP);  
  
 //Set style for screen_label_1. Part: LV_PART_MAIN, State: LV_STATE_DEFAULT  
 lv_obj_set_style_radius(ui- >screen_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_bg_color(ui- >screen_label_1, lv_color_make(0x7c, 0x00, 0xff), LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_bg_grad_color(ui- >screen_label_1, lv_color_make(0x21, 0x95, 0xf6), LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_bg_grad_dir(ui- >screen_label_1, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_bg_opa(ui- >screen_label_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_shadow_width(ui- >screen_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_shadow_color(ui- >screen_label_1, lv_color_make(0x21, 0x95, 0xf6), LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_shadow_opa(ui- >screen_label_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_shadow_spread(ui- >screen_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_shadow_ofs_x(ui- >screen_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_shadow_ofs_y(ui- >screen_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_text_color(ui- >screen_label_1, lv_color_make(0xff, 0xff, 0xff), LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_text_font(ui- >screen_label_1, &lv_font_montserratMedium_32, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_text_letter_space(ui- >screen_label_1, 2, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_text_line_space(ui- >screen_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_text_align(ui- >screen_label_1, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_pad_left(ui- >screen_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_pad_right(ui- >screen_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_pad_top(ui- >screen_label_1, 8, LV_PART_MAIN|LV_STATE_DEFAULT);  
 lv_obj_set_style_pad_bottom(ui- >screen_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);  
}

此時,可以通過預覽頁面,看到本頁面的靜態顯示效果。還可以通過運行模擬器,在GUI Guider中模擬UI程序運行時的動態效果(如果有動態效果)。如圖x所示。

image.png

figure-gui-using-label-3
圖x 預覽編輯label對象的效果

編譯MCU工程并下載到開發板

編譯對應的Keil工程,啟動針對代碼量的優化,看下對存儲空間的占用。

Build started: Project: project  
*** Using Compiler 'V6.18', folder: 'C:Keil_v5ARMARMCLANGBin'  
Build target 'Target 1'  
compiling clock_init.c...  
compiling board_init.c...  
compiling hal_crc.c...  
compiling lcd_port.c...  
compiling pin_init.c...  
compiling lcd.c...  
...  
compiling events_init.c...  
compiling gui_guider.c...  
compiling lv_font_montserratMedium_16.c...  
compiling lv_table.c...  
compiling setup_scr_screen.c...  
compiling lv_font_montserratMedium_32.c...  
compiling lv_textarea.c...  
linking...  
Program Size: Code=154616 RO-data=64380 RW-data=148 ZI-data=29100    
".Objectsproject.axf" - 0 Error(s), 0 Warning(s).  
Build Time Elapsed:  00:00:14

下載程序到MCU并運行,可以看到,開發板上的顯示屏上也成功顯示了“同款”圖像。如圖x所示。

image.png

figure-gui-using-label-4-mini
圖x 在開發板上運行UI顯示label對象

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7492

    瀏覽量

    163836
  • 模擬器
    +關注

    關注

    2

    文章

    875

    瀏覽量

    43223
  • GUI
    GUI
    +關注

    關注

    3

    文章

    660

    瀏覽量

    39677
  • MCU控制器
    +關注

    關注

    0

    文章

    27

    瀏覽量

    6885
  • LVGL
    +關注

    關注

    1

    文章

    83

    瀏覽量

    2969
收藏 人收藏

    評論

    相關推薦

    使用GUI Guider工具在MCU上開發嵌入式GUI應用 (1)

    LVGL是一個開源免費(MIT許可)的嵌入式GUI組件,支持觸摸屏操作,移植簡單方便,開發者一直在不斷完善更新。
    的頭像 發表于 08-16 14:29 ?3149次閱讀
    使用<b class='flag-5'>GUI</b> <b class='flag-5'>Guider</b><b class='flag-5'>工具</b>在MCU上<b class='flag-5'>開發</b><b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b>應用 (1)

    使用GUI Guider工具開發嵌入式GUI應用(2)

    GUI Guider本質上是一個方便嵌入式開發者基于LVGL開發GUI應用的源碼生成器工具,其作
    的頭像 發表于 08-16 14:36 ?3533次閱讀
    使用<b class='flag-5'>GUI</b> <b class='flag-5'>Guider</b><b class='flag-5'>工具</b><b class='flag-5'>開發</b><b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b>應用(2)

    圖形界面開發工具GUI Guider的使用教程

    GUI Guider是NXP推出的一款功能強大且對用戶非常友好的圖形界面開發工具。目前最新版本是1.6.1。
    的頭像 發表于 12-20 09:49 ?1.9w次閱讀
    圖形界面<b class='flag-5'>開發工具</b><b class='flag-5'>GUI</b> <b class='flag-5'>Guider</b>的使用教程

    基于ARM-Linux的嵌入式系統GUI開發研究

    目前嵌入式系統中的GUI開發已經成為研究的熱點,本文以Intel 公司Xscale PXA255 為內核的XSBase255嵌入式平臺,以ARM-Linux 為操作系統,接著介紹對
    發表于 06-29 09:37 ?15次下載

    基于Linux的嵌入式GUI設計研究

    本文介紹了嵌入式圖形用戶界面(Embedded Graphics User Interface,EmbeddedGUI)的結構和設計思想,詳細說明了嵌入式GUI 的三層結構:GAL 和IAL 層、
    發表于 08-12 08:49 ?21次下載

    嵌入式圖形系統μc/GUI的移植和開發

    嵌入式圖形系統μc/GUI的移植和開發 摘要  嵌入式系統的開發已成為新的行業熱點,而嵌入式
    發表于 12-25 17:55 ?1150次閱讀
    <b class='flag-5'>嵌入式</b>圖形系統μc/<b class='flag-5'>GUI</b>的移植和<b class='flag-5'>開發</b>

    Linux GUI嵌入式開發有什么新的研究方向

    對比嵌入式 Linux 常見 GUI 方案,以及其它嵌入式 GUI 方案,AWTK 在嵌入式 Linux 系統上也極具優勢,也能能很好的解決
    發表于 11-06 11:28 ?1195次閱讀
    Linux <b class='flag-5'>GUI</b><b class='flag-5'>嵌入式開發</b>有什么新的研究方向

    免費的GUI Guider又出新版本!看看它為嵌入式圖形開發,帶來哪些新玩法~

    GUI Guider是恩智浦推出的一款用戶友好的嵌入式圖形應用開發工具。它使用開源LVGL圖形庫作為底層圖形引擎,提供可視化所見即所得的拖放UI編輯器,能夠快速、輕松地為
    的頭像 發表于 11-25 08:15 ?7265次閱讀

    GUI-Guider生成工程移植MCU

    GUI Guider 是恩智浦為 LVGL 開發了一個上位機GUI 設計工具,可以通過拖放控件的方式設計 LVGL
    發表于 02-22 16:18 ?2次下載

    GUI Guider v1.5.0正式發布!它為嵌入式圖形開發又帶來哪些新功能,一起來探索吧~

    GUI Guider是恩智浦研發的一款用戶友好、跨平臺、支持多語言的嵌入式圖形應用開發工具。它是基于開源的LVGL圖形庫,提供可視化所見即所得的拖放UI設計器,能夠快速輕松地為
    的頭像 發表于 02-24 08:10 ?3316次閱讀

    GUI Guider v1.6.0正式發布:更多嵌入式HMI開發新功能,等你來探索!

    新版GUI Guider發布 GUI Guider 是恩智浦研發的一款用戶友好、跨平臺、支持多語言的嵌入式人機交互應用
    的頭像 發表于 08-04 08:05 ?1797次閱讀

    免費又簡單!新版本GUI Guider發布,速來體驗不一樣的嵌入式HMI開發

    新版本GUI Guider發布 作為恩智浦研發的一款用戶友好、跨平臺、支持多語言的嵌入式人機交互應用開發工具GUI
    的頭像 發表于 10-13 08:10 ?2762次閱讀
    免費又簡單!新版本<b class='flag-5'>GUI</b> <b class='flag-5'>Guider</b>發布,速來體驗不一樣的<b class='flag-5'>嵌入式</b>HMI<b class='flag-5'>開發</b>

    嵌入式GUI特訓營』開營啦!是學霸就有獎拿,快來挑戰一下!

    ! ↓↓↓ 點擊這里,馬上入營! 精品課程 在“嵌入式GUI特訓營”中,通過NXP資深工程師主講的7堂精品技術課程,你將會—— 了解GUI熱點技術和開發技巧 結識免費的
    的頭像 發表于 12-01 09:15 ?460次閱讀
    『<b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b>特訓營』開營啦!是學霸就有獎拿,快來挑戰一下!

    GUI Guider新版本發布,嵌入式GUI開發體驗升級

    作為恩智浦著力打造的一款嵌入式人機交互應用開發工具GUI Guider又迎來了一個新版本!最新發布的GUI
    發表于 03-29 09:47 ?1686次閱讀
    <b class='flag-5'>GUI</b> <b class='flag-5'>Guider</b>新版本發布,<b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b><b class='flag-5'>開發</b>體驗升級

    GUI Guider全新版本上線

    GUI Guider v1.8.1上線啦!這一版本為嵌入式HMI開發帶來了多項新功能和改進,旨在為您提供更加高效、便捷的嵌入式HMI
    的頭像 發表于 10-14 11:37 ?1365次閱讀
    主站蜘蛛池模板: 国产做爰一区二区| 深夜大尺度视频在线观看| 三级理论在线观看| 国产高清一区二区三区| 久插| 2021天天躁狠狠燥| 久久性久久性久久久爽| 天堂va欧美ⅴa亚洲va一国产| 91pao强力打造免费高清| 四虎影午夜成年免费精品| 国产激烈床戏无遮挡在线观看| 极品丰满翘臀后进啪啪| 中文字幕在线观看第一页| 精品毛片视频| 国产巨大bbbb天美| 亚洲成a人片在线观看尤物| 丁香花在线观看免费观看| 综合7799亚洲伊人爱爱网| 天天插天天透| 在线黄色.com| 性生大片免费观看无遮挡| 欧美一级免费在线观看| 男人资源站| 一级毛片q片| www.av网| 亚洲一级免费视频| 看免费黄色大片| www.色涩涩.com| 色图视频| 色之综综| 性欧美护士18xxxxhd视频| se视频在线观看| 特大一级aaaaa毛片| 韩国在线视频| 丁香激情综合| 萝l在线精品社区资源| www.干| 欧美三级 欧美一级| 狠狠草视频| 色av.com| 国产看午夜精品理论片|