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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用GUI Guider工具開(kāi)發(fā)嵌入式GUI應(yīng)用(3)

冬至子 ? 來(lái)源:安德魯?shù)脑O(shè)計(jì)筆記本 ? 作者:安德魯蘇 ? 2023-08-16 14:39 ? 次閱讀

引言

本節(jié)講述在GUI Guider中,應(yīng)用各種UI的基本元素,并順利部署到MCU的過(guò)程。在GUI Guider中使用各LVGL的組件時(shí),將會(huì)涉及到GUI Guider的操作,以及將某些組件額外生成的源碼添加到Keil工程中。至于具體產(chǎn)品中的UI應(yīng)用,可以是這些基本UI元素的組合使用,以實(shí)現(xiàn)更加豐富的顯示效果。

在本文中,將說(shuō)明使用通過(guò)GUI Guider創(chuàng)建并使用LVGL的label組件顯示字符信息。

在GUI Guider工程中創(chuàng)建label組件

在新建GUI Guider工程搭建MCU運(yùn)行時(shí)的框架工程時(shí),曾使用了label組件實(shí)現(xiàn)在屏幕上顯示一個(gè)“Hello World”字符串的演示效果。Label是GUI Guider中最簡(jiǎn)單的組件,可用于顯示字符。

當(dāng)需要為某個(gè)頁(yè)面添加一個(gè)顯示字符串的對(duì)象時(shí),可在編輯區(qū)域左邊的工具欄中選擇label按鈕,此時(shí),在組件窗口中就可以看到,當(dāng)前的頁(yè)面screen下出現(xiàn)了一個(gè)label_1的對(duì)象。如圖x所示。

image.png

figure-gui-using-label-1
圖x 新增label對(duì)象

雙擊在當(dāng)前頁(yè)面上出現(xiàn)的label對(duì)象,可以在編輯區(qū)域的右側(cè)激活該對(duì)象的屬性設(shè)置對(duì)話(huà)框,如圖x所示。在其中,可以執(zhí)行該對(duì)象的名字、位置、文本內(nèi)容、字體、顏色等屬性。當(dāng)然,既然是在圖形編輯界面,對(duì)象的位置也可以通過(guò)在圖形編輯區(qū)拖拽對(duì)象來(lái)調(diào)整。

image.png

figure-gui-using-label-2
圖x 編輯label對(duì)象屬性

然后,重新生成代碼。在運(yùn)行時(shí)的Keil工程已經(jīng)包含了靜態(tài)頁(yè)面的源文件,因此不用額外再執(zhí)行添加文件的操作。但實(shí)際上,這里新生成的源碼位于./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);  
}

此時(shí),可以通過(guò)預(yù)覽頁(yè)面,看到本頁(yè)面的靜態(tài)顯示效果。還可以通過(guò)運(yùn)行模擬器,在GUI Guider中模擬UI程序運(yùn)行時(shí)的動(dòng)態(tài)效果(如果有動(dòng)態(tài)效果)。如圖x所示。

image.png

figure-gui-using-label-3
圖x 預(yù)覽編輯label對(duì)象的效果

編譯MCU工程并下載到開(kāi)發(fā)板

編譯對(duì)應(yīng)的Keil工程,啟動(dòng)針對(duì)代碼量的優(yōu)化,看下對(duì)存儲(chǔ)空間的占用。

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并運(yùn)行,可以看到,開(kāi)發(fā)板上的顯示屏上也成功顯示了“同款”圖像。如圖x所示。

image.png

figure-gui-using-label-4-mini
圖x 在開(kāi)發(fā)板上運(yùn)行UI顯示label對(duì)象

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7637

    瀏覽量

    166539
  • 模擬器
    +關(guān)注

    關(guān)注

    2

    文章

    894

    瀏覽量

    44083
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    677

    瀏覽量

    40815
  • MCU控制器
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    7075
  • LVGL
    +關(guān)注

    關(guān)注

    1

    文章

    100

    瀏覽量

    3570
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用GUI Guider工具在MCU上開(kāi)發(fā)嵌入式GUI應(yīng)用 (1)

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

    使用GUI Guider工具開(kāi)發(fā)嵌入式GUI應(yīng)用(2)

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

    圖形界面開(kāi)發(fā)工具GUI Guider的使用教程

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

    基于ARM-Linux的嵌入式系統(tǒng)GUI開(kāi)發(fā)研究

    目前嵌入式系統(tǒng)中的GUI開(kāi)發(fā)已經(jīng)成為研究的熱點(diǎn),本文以Intel 公司Xscale PXA255 為內(nèi)核的XSBase255嵌入式平臺(tái),以ARM-Linux 為操作系統(tǒng),接著介紹對(duì)
    發(fā)表于 06-29 09:37 ?15次下載

    基于Linux的嵌入式GUI設(shè)計(jì)研究

    本文介紹了嵌入式圖形用戶(hù)界面(Embedded Graphics User Interface,EmbeddedGUI)的結(jié)構(gòu)和設(shè)計(jì)思想,詳細(xì)說(shuō)明了嵌入式GUI 的三層結(jié)構(gòu):GAL 和IAL 層、
    發(fā)表于 08-12 08:49 ?21次下載

    嵌入式圖形系統(tǒng)μc/GUI的移植和開(kāi)發(fā)

    嵌入式圖形系統(tǒng)μc/GUI的移植和開(kāi)發(fā) 摘要  嵌入式系統(tǒng)的開(kāi)發(fā)已成為新的行業(yè)熱點(diǎn),而嵌入式
    發(fā)表于 12-25 17:55 ?1253次閱讀
    <b class='flag-5'>嵌入式</b>圖形系統(tǒng)μc/<b class='flag-5'>GUI</b>的移植和<b class='flag-5'>開(kāi)發(fā)</b>

    Linux GUI嵌入式開(kāi)發(fā)有什么新的研究方向

    對(duì)比嵌入式 Linux 常見(jiàn) GUI 方案,以及其它嵌入式 GUI 方案,AWTK 在嵌入式 Linux 系統(tǒng)上也極具優(yōu)勢(shì),也能能很好的解決
    發(fā)表于 11-06 11:28 ?1319次閱讀
    Linux <b class='flag-5'>GUI</b><b class='flag-5'>嵌入式開(kāi)發(fā)</b>有什么新的研究方向

    免費(fèi)的GUI Guider又出新版本!看看它為嵌入式圖形開(kāi)發(fā),帶來(lái)哪些新玩法~

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

    GUI-Guider生成工程移植MCU

    GUI Guider 是恩智浦為 LVGL 開(kāi)發(fā)了一個(gè)上位機(jī)GUI 設(shè)計(jì)工具,可以通過(guò)拖放控件的方式設(shè)計(jì) LVGL
    發(fā)表于 02-22 16:18 ?2次下載

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

    GUI Guider是恩智浦研發(fā)的一款用戶(hù)友好、跨平臺(tái)、支持多語(yǔ)言的嵌入式圖形應(yīng)用開(kāi)發(fā)工具。它是基于開(kāi)源的LVGL圖形庫(kù),提供可視化所見(jiàn)即所得的拖放UI設(shè)計(jì)器,能夠快速輕松地為
    的頭像 發(fā)表于 02-24 08:10 ?3756次閱讀

    GUI Guider v1.6.0正式發(fā)布:更多嵌入式HMI開(kāi)發(fā)新功能,等你來(lái)探索!

    新版GUI Guider發(fā)布 GUI Guider 是恩智浦研發(fā)的一款用戶(hù)友好、跨平臺(tái)、支持多語(yǔ)言的嵌入式人機(jī)交互應(yīng)用
    的頭像 發(fā)表于 08-04 08:05 ?2295次閱讀

    免費(fèi)又簡(jiǎn)單!新版本GUI Guider發(fā)布,速來(lái)體驗(yàn)不一樣的嵌入式HMI開(kāi)發(fā)

    新版本GUI Guider發(fā)布 作為恩智浦研發(fā)的一款用戶(hù)友好、跨平臺(tái)、支持多語(yǔ)言的嵌入式人機(jī)交互應(yīng)用開(kāi)發(fā)工具GUI
    的頭像 發(fā)表于 10-13 08:10 ?3496次閱讀
    免費(fèi)又簡(jiǎn)單!新版本<b class='flag-5'>GUI</b> <b class='flag-5'>Guider</b>發(fā)布,速來(lái)體驗(yàn)不一樣的<b class='flag-5'>嵌入式</b>HMI<b class='flag-5'>開(kāi)發(fā)</b>

    嵌入式GUI特訓(xùn)營(yíng)』開(kāi)營(yíng)啦!是學(xué)霸就有獎(jiǎng)拿,快來(lái)挑戰(zhàn)一下!

    ! ↓↓↓ 點(diǎn)擊這里,馬上入營(yíng)! 精品課程 在“嵌入式GUI特訓(xùn)營(yíng)”中,通過(guò)NXP資深工程師主講的7堂精品技術(shù)課程,你將會(huì)—— 了解GUI熱點(diǎn)技術(shù)和開(kāi)發(fā)技巧 結(jié)識(shí)免費(fèi)的
    的頭像 發(fā)表于 12-01 09:15 ?650次閱讀
    『<b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b>特訓(xùn)營(yíng)』開(kāi)營(yíng)啦!是學(xué)霸就有獎(jiǎng)拿,快來(lái)挑戰(zhàn)一下!

    GUI Guider新版本發(fā)布,嵌入式GUI開(kāi)發(fā)體驗(yàn)升級(jí)

    作為恩智浦著力打造的一款嵌入式人機(jī)交互應(yīng)用開(kāi)發(fā)工具GUI Guider又迎來(lái)了一個(gè)新版本!最新發(fā)布的GUI
    發(fā)表于 03-29 09:47 ?2232次閱讀
    <b class='flag-5'>GUI</b> <b class='flag-5'>Guider</b>新版本發(fā)布,<b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b><b class='flag-5'>開(kāi)發(fā)</b>體驗(yàn)升級(jí)

    GUI Guider全新版本上線

    GUI Guider v1.8.1上線啦!這一版本為嵌入式HMI開(kāi)發(fā)帶來(lái)了多項(xiàng)新功能和改進(jìn),旨在為您提供更加高效、便捷的嵌入式HMI
    的頭像 發(fā)表于 10-14 11:37 ?2251次閱讀
    主站蜘蛛池模板: 天堂网址 | 最新日韩中文字幕 | 天天做爽夜夜做爽 | 精品国产_亚洲人成在线高清 | 666夜色666夜色国产免费看 | 91最新网站免费 | heyzo在线播放4k岛国 | 亚洲bt天堂| 777奇米影视一区二区三区 | 欧美城天堂网 | 日韩草逼 | 狠狠干狠狠爱 | 国产三级跑 | 精品国产一区二区三区国产馆 | 窝窝午夜看片免费视频 | 69xxxx女人| 美女免费黄 | 色婷婷国产 | 被男同桌摸内裤好爽视频 | aⅴ一区二区三区 | 天天做天天玩天天爽天天 | 日本免费视频 | 国产男女免费视频 | 久综合网 | 日韩卡1卡2卡三卡四卡二卡免 | 美国69bjfree18vide视频 | 中文字幕一区二区精品区 | 黄色毛片播放 | 男男憋尿play按小腹 | 成人黄色三级 | 欧美黄色片网站 | 色资源在线观看 | 国产亚洲欧美一区 | 欧美ol丝袜高跟秘书在线播放 | 亚洲一区二区三区高清视频 | 2017av在线| 久久婷婷激情 | 一区二区亚洲视频 | 色香蕉在线观看网站 | 男人天堂网在线播放 | 免费jlzzjlzz在线播放视频 |