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

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

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

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

在i.MX RT平臺上開發(fā)圖形界面工程

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 2022-12-22 14:08 ? 次閱讀

背景介紹

近幾年,由于半導(dǎo)體行業(yè)的大力發(fā)展,配備圖形界面的嵌入式設(shè)備已經(jīng)越來越多的出現(xiàn)在我們的生活中。傳統(tǒng)家電,比如洗衣機(jī)、微波爐,原始的機(jī)械按鍵都逐漸被顯示觸控按鍵替代;穿戴設(shè)備,配備顯示屏的電子款手表手環(huán),開始占據(jù)越來越大的市場份額;汽車領(lǐng)域,開始使用觸控屏按鍵取代傳統(tǒng)機(jī)械按鍵,LCD儀表盤也幾乎將指針儀表盤淘汰。因此,能夠進(jìn)行界面顯示、交互的微控制器也越來越受市場的青睞。

恩智浦i.MX RT系列MCU性能強(qiáng)大、主頻高,并且其中部分MCU配備了圖形處理外設(shè),是繪制圖形界面非常好的選擇。

本文通過一個基于恩智浦推出的LVGL圖形設(shè)計工具GUI Guider,和運行在i.MX RT1170上的圖形界面工程,來介紹在i.MX RT系列MCU上進(jìn)行圖形界面的設(shè)計。

工程演示視頻如下所示:

界面設(shè)計軟件GUI Guider

GUI Guider是恩智浦為LVGL推出的一個GUI軟件設(shè)計工具,旨在讓客戶在使用恩智浦芯片開發(fā)LVGL圖形界面工程時,能夠更方便的設(shè)計出精美的界面。

打開工具,選擇新建項目,接著可以選擇你所用的LVGL版本以及你所用的MCU、顯示屏、項目模板等。需要注意的是,本項目選用1280*720的顯示屏(即landscape模式),在設(shè)備選擇時注意不要選成720*1280。

8673de7a-81af-11ed-8abf-dac502259ad0.png

圖1. GUI Guider工程創(chuàng)建&屏幕選擇

在界面基本創(chuàng)建好之后,GUI Guider工程如下圖所示:

8690547e-81af-11ed-8abf-dac502259ad0.png

圖2. 界面創(chuàng)建完成

本文只用GUI Guider做界面布局,界面的圖標(biāo)都用了貼圖控件,并未選擇工具中的其他功能控件。

如果想了解GUI Guider的用法以及各種控件的知識,可以翻閱本站前期的文章和NXP官方網(wǎng)站,在此不對GUI Guider做過多的介紹。

功能任務(wù)

在GUI Guider工程創(chuàng)建完成后,可以在對應(yīng)的文件夾下找到創(chuàng)建好的工程文件(GUI-Guider-Projectsxxxxgenerated),其中包含了在工具中繪制的界面文件、添加的事件文件及圖片字體的存儲文件等。

值得注意的是,當(dāng)我們創(chuàng)建好界面工程,開始添加自己的邏輯功能代碼時,需要放在’custom’文件夾中,如果放在了你工程的源文件中(GUI-Guider-ProjectsxxxxsdkCoresource),那么當(dāng)你不小心進(jìn)行了工程的更新之后,你所寫的邏輯功能代碼將會被覆蓋,別問我是怎么知道的。。。

介紹完了在GUI Guider中創(chuàng)建工程的注意事項之后,開始介紹本文的功能任務(wù)。

1、LVGL任務(wù) 利用GUI Guider創(chuàng)建的LVGL工程,可以參考SDK中的“SDK_2_12_0_MIMXRT1170-EVKoardsevkmimxrt1170lvgl_exampleslvgl_guider”,兩者具有相同的結(jié)構(gòu)。 在前面的演示視頻中,可以看到,本工程模擬一個汽車儀表盤,在開機(jī)以及行駛過程中的顯示情景。本工程用于展示其顯示功能并未展示GUI的交互功能,絕大部分都是用了貼圖來進(jìn)行界面的填充,想要達(dá)到動畫的效果,可以通過創(chuàng)建、刪除圖像控件或者對圖像控件進(jìn)行透明度設(shè)定來實現(xiàn)。 在LVGL中參考如下兩種方法:

lv_obj_create(lv_obj_t * obj) //創(chuàng)建對象

lv_obj_del(lv_obj_t * obj) //刪除對象,結(jié)合創(chuàng)建對象功能以實現(xiàn)動畫效果;

lv_style_set_img_opa(lv_style_t * style, lv_opa_t value) //設(shè)置某個樣式的透明度值

lv_obj_add_style(lv_obj_t * obj, lv_style_t * style, lv_style_selector_t selector) //給所選的圖像添加透明度為0或者1的樣式,以實現(xiàn)動畫效果;

本工程所選用的方式為設(shè)置圖像透明度。先利用GUI Guider工具將所需要的全部圖像按照上下層順序貼好,注意,一定要確定好放置的次序,否則在后續(xù)添加邏輯代碼實現(xiàn)動畫效果時會與預(yù)期效果不同。

比如界面中的右轉(zhuǎn)向燈,在設(shè)置相應(yīng)的位置后,在工具右側(cè)‘Attributes’欄下面,可以通過‘Opacity’選項設(shè)置其初始透明度。

86ac0e26-81af-11ed-8abf-dac502259ad0.png

圖3.設(shè)置對象透明度

在后續(xù)程序運行中,再通過邏輯函數(shù)修改各圖像控件的透明度來達(dá)到動畫的效果。

為了充分利用有限的存儲空間,我們往往需要將代碼進(jìn)行最大化的“瘦身”。而在LVGL工程中,很重要的一點,就是將我們沒有用到的模塊裁剪掉。打開’ sdkCoresource’文件夾下的lv_conf.h文件,我們可以看到有許多開關(guān)宏,LVGL中的控件都通過這些開關(guān)宏來確定是否加入編譯。這里我們將沒有用到的控件,比如Arc, Bar, Checkbox等都關(guān)閉其宏定義,這樣可以減少編譯的文件,從而給代碼“瘦身”。

86cc3372-81af-11ed-8abf-dac502259ad0.png

圖4. 進(jìn)行LVGL控件裁剪

2.RTC任務(wù)

在常見的汽車儀表盤中,都會有日期時間的顯示。本工程中在界面繪制時也添加上了此模塊。在上面視頻演示中可以看到,在初始開機(jī)界面沒有添加此部分,而后在表盤界面就添加上。我們需要做的是在GUI Guider布局界面時,在對應(yīng)位置添加上對應(yīng)格式的文本控件。

8762ff0a-81af-11ed-8abf-dac502259ad0.png

圖5. 添加日期、時間對象

在界面布局完成后,添加我們的邏輯代碼。首先進(jìn)行RTC模塊的初始化,通過宏設(shè)定初始的日期以及時間,添加時鐘任務(wù),并設(shè)定好每一秒鐘進(jìn)行計時的更新。再添加時間文本轉(zhuǎn)換函數(shù)以及文本更新函數(shù),就可以開始進(jìn)行日期、時鐘的顯示。

但是,我總不能每次都通過修改宏來設(shè)定時間吧?別急,本工程還添加了運行中修改時間的功能。接著往下看。

3. SHELL命令任務(wù)

SHELL命令任務(wù)可以幫助在程序運行時候進(jìn)行負(fù)載分析等功能。本工程中添加了通過SHELL命令設(shè)置時間的功能,現(xiàn)在就來以此功能為例,講講SHELL命令任務(wù)的添加。

首先添加一個SHELL_TASK線程,在此線程中,進(jìn)行虛擬串口的配置,SHELL命令的添加等操作。在’settime’命令中,以“settime y/m/d/h/m/s”的格式進(jìn)行日期及時間的設(shè)置,之后你所設(shè)置的文本將被傳到RTC任務(wù)中設(shè)置時間的函數(shù)中,這樣就達(dá)成了利用SHELL命令,通過USB口設(shè)置當(dāng)前時間的功能。

8777389e-81af-11ed-8abf-dac502259ad0.png

圖6. SHELL命令修改界面時間

為了配合SHELL命令任務(wù),在時鐘任務(wù)中,需要將更新時間函數(shù)分為手動更新和自動更新。手動更新時,SHELL任務(wù)中配置一個值,當(dāng)時鐘任務(wù)判定這個值為手動配置信號時,將SHELL任務(wù)中更新的日期時間值傳到時鐘任務(wù)中,完成時間修改操作;自動更新則是當(dāng)時鐘任務(wù)判定到非手動更新信號,則進(jìn)行時間的自動更新,不過需要注意的是,當(dāng)我們進(jìn)行自動更新,調(diào)用更新函數(shù)時,需要在界面配置函數(shù)完成日期時間文本控件的創(chuàng)建之后,否則函數(shù)運行會出錯,這里也通過一個來自LVGL任務(wù)中創(chuàng)建日期時間文本控件之后的值,來進(jìn)行時間自動更新的操作。

    if (g_timeupdated) {
      /* Set RTC time to default time and date and start the RTC*/
      SNVS_HP_RTC_StopTimer(SNVS);
      SNVS_HP_RTC_SetDatetime(SNVS, &g_rtcdate);
      SNVS_HP_RTC_StartTimer(SNVS);
      rtcDate = g_rtcdate;
      g_timeupdated = 0;
    }
    else {
      /* Get date time */
      SNVS_HP_RTC_GetDatetime(SNVS, &rtcDate);
      if (s_time_initialized){        
        draw_date_Time_update();        
      }
    }


總結(jié)

在創(chuàng)建圖形界面工程的時候,我們可以先利用GUI Guider工具將所需要的界面布局設(shè)計好,對于各控件,可以在工具中修改其各項參數(shù),但值得注意的是,工具中并未包含所有的參數(shù),有些時候我們可以通過自己修改代碼來進(jìn)行界面的設(shè)置。之后將沒有用到的模塊裁剪掉,以減少代碼的大小。

在界面創(chuàng)建完成之后,我們可以添加自己的邏輯代碼,實現(xiàn)自己想要的效果。

本文以一個汽車儀表盤圖形界面的工程為例,給出了其開發(fā)的過程以供參考。

審核編輯:湯梓紅

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

    關(guān)注

    146

    文章

    17668

    瀏覽量

    357504
  • 恩智浦
    +關(guān)注

    關(guān)注

    14

    文章

    5925

    瀏覽量

    111257
  • RT
    RT
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

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

    關(guān)注

    3

    文章

    670

    瀏覽量

    40510
  • 圖形界面
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    7493

原文標(biāo)題:在i.MX RT平臺上開發(fā)圖形界面工程

文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    i.MX RT的FreeRTOS MCUXpresso工程中添加runtime

    調(diào)試 i.MX RT FreeRTOS MCUXpresso SDK工程的時候, 很多網(wǎng)友需要添加查看每個task的runtime功能。
    的頭像 發(fā)表于 06-09 09:30 ?1501次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的FreeRTOS MCUXpresso<b class='flag-5'>工程</b>中添加runtime

    i.Mx RT平臺內(nèi)存建議

    哪些超總線存儲器被推薦用于NXP的I.MX RT平臺。CyPress的超閃存/HyrRAM MCP設(shè)備與NXP的I.MX RT系列兼容嗎?應(yīng)
    發(fā)表于 09-05 14:33

    基于i.MX 6系列的智能設(shè)備SABRE開發(fā)平臺

    MCIMX6Q-SDP,基于i.MX 6系列的智能設(shè)備SABRE開發(fā)平臺。用于智能設(shè)備的智能應(yīng)用快速工程藍(lán)圖(SABRE)平臺允許評估基于
    發(fā)表于 06-02 15:50

    i.MX RT1050平臺的相關(guān)資料推薦

    的首款跨界處理器。該處理器具備應(yīng)用處理器的高性能與高度集成的優(yōu)勢,更具有微控制器的易用性和實時功能。NXP Semiconductors(恩智浦半導(dǎo)體)公司根據(jù)用戶成本需求, i.MX RT1050 處理器的價格上做出調(diào)整,性
    發(fā)表于 11-29 07:19

    01:i.MX RT的市場應(yīng)用和參考解決方案

    i.MX RT產(chǎn)品是今年市場上最受歡迎的跨界MCU產(chǎn)品。i.MX RT定位為一款MCU產(chǎn)品,它可以重復(fù)利用傳統(tǒng)的Arm MCU生態(tài)系統(tǒng)。除此之外,本次講座還將簡要介紹
    的頭像 發(fā)表于 01-21 07:13 ?3599次閱讀
    01:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的市場應(yīng)用和參考解決方案

    恩智浦i.MX RT1170將該系列帶上了更高的層面

    寬泛溫度范圍下運行的能力,i.MX RT1170微控制器面向消費、工業(yè)和汽車市場的廣泛應(yīng)用。 i.MX RT1170
    的頭像 發(fā)表于 05-18 11:15 ?3953次閱讀

    i.MX RT10XX系列平臺上進(jìn)行OTA

    升級。最為常見的就是移動終端的OTA升級,近幾年很火的新能源汽車也讓大家對這一技術(shù)更加熟悉。 二、概述本文將介紹i.MX RT10XX系列平臺上,進(jìn)行基于阿里云物聯(lián)網(wǎng)
    的頭像 發(fā)表于 09-17 10:12 ?2771次閱讀

    【044】SylixOS 正式支持 i.MX RT1050平臺

    的首款跨界處理器。該處理器具備應(yīng)用處理器的高性能與高度集成的優(yōu)勢,更具有微控制器的易用性和實時功能。NXP Semiconductors(恩智浦半導(dǎo)體)公司根據(jù)用戶成本需求, i.MX RT1050 處理器的價格上做出調(diào)整,性
    發(fā)表于 11-19 12:51 ?14次下載
    【044】SylixOS 正式支持 <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1050<b class='flag-5'>平臺</b>

    i.MX RT開發(fā)筆記-08 | i.MX RT1062嵌套中斷向量控制器NVIC(按鍵中斷檢測)

    RT開發(fā)筆記-03 | i.MX RT1062地址空間映射i.MX RT
    發(fā)表于 12-01 13:51 ?2次下載
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b><b class='flag-5'>開發(fā)</b>筆記-08 | <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1062嵌套中斷向量控制器NVIC(按鍵中斷檢測)

    RT-Thread & NXP 發(fā)布 i.MX RT 系列 BSP 新框架

    前言i.MX RT 是 NXP 推出的跨界處理器系列。該系列下又包括 i.MX RT1020、i.MX
    發(fā)表于 12-07 13:06 ?2次下載
    <b class='flag-5'>RT</b>-Thread & NXP 發(fā)布 <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b> 系列 BSP 新框架

    基于i.MX RT單芯片實現(xiàn)的GUI圖形顯示和語音控制解決方案

    基于優(yōu)秀的性能指標(biāo),i.MX RT可以勝任許多輕量級的AI應(yīng)用,賦能越來越多的邊緣設(shè)備。今天這場視頻講座中,恩智浦的專家將向大家展示一款基于i.MX RT單芯片實現(xiàn)的GUI
    的頭像 發(fā)表于 12-31 09:48 ?7383次閱讀

    移植Arm-2D到i.MX RT1050-EVKB并繪制圖形界面

    眾所周知,i.MX RT系列是MCU中的性能強(qiáng)者,超高的主頻、豐富的外設(shè)以及足夠大的存儲使其能輕松應(yīng)用于各類領(lǐng)域。其中,圖像視頻方面,i.MX R
    的頭像 發(fā)表于 06-23 09:33 ?2485次閱讀

    移植Arm-2D到i.MX RT1050-EVKB并繪制圖形界面

    眾所周知,i.MX RT系列是MCU中的性能強(qiáng)者,超高的主頻、豐富的外設(shè)以及足夠大的存儲使其能輕松應(yīng)用于各類領(lǐng)域。其中,圖像視頻方面,i.MX R
    的頭像 發(fā)表于 07-12 10:05 ?2322次閱讀

    i.MX RT的FlexRAM配置問題

    i.MX RT的FlexRAM配置問題
    的頭像 發(fā)表于 10-24 15:46 ?980次閱讀
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的FlexRAM配置問題

    基于NXP i.MX RT117H智能人機(jī)界面方案

    基于NXP i.MX RT117H智能人機(jī)界面方案
    的頭像 發(fā)表于 10-30 18:22 ?838次閱讀
    基于NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>117H智能人機(jī)<b class='flag-5'>界面</b>方案
    主站蜘蛛池模板: 免费一区二区 | 可以免费观看的一级毛片 | 一级特一级特色生活片 | 最好看的2019中文字幕1 | 性欧美成人依依影院 | 边摸边吃奶边做视频叫床韩剧 | 2021年最热新版天堂资源中文 | 国产网站黄色 | 免费看三级黄色片 | 好男人社区www的视频免费 | 国产一级特黄老妇女大片免费 | 午夜dy888理论在线播放 | 伊人不卡久久大香线蕉综合影院 | 亚洲欧美在线视频免费 | tube 69sex 第一次 | japan日韩xxxx69hd jdav视频在线观看 | 97黄网| 男女视频在线观看免费 | 久久精品夜夜夜夜夜久久 | 在线免费视频国产 | 亚洲免费二区三区 | 国产精品国产午夜免费福利看 | 久久久久九九精品影院 | 一级片免费在线 | 永久免费在线看 | 男人资源在线 | 久久国内视频 | 噜噜噜噜私人影院 | 国产理论视频在线观看 | 五月情婷婷 | 久久精品久久久 | 又色又爽视频 | 狠狠狠狼鲁欧美综合网免费 | www.黄色免费 | 四虎a级欧美在线观看 | 欧美一级爱操视频 | 亚洲综合欧美日本另类激情 | 欧美a视频 | aaaa大片| 视频一区在线观看 | 精品无码中出一区二区 |