色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

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

背景介紹

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

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

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

工程演示視頻如下所示:

界面設計軟件GUI Guider

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

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

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

圖1. GUI Guider工程創建&屏幕選擇

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

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

圖2. 界面創建完成

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

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

功能任務

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

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

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

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

lv_obj_create(lv_obj_t * obj) //創建對象

lv_obj_del(lv_obj_t * obj) //刪除對象,結合創建對象功能以實現動畫效果;

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

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

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

比如界面中的右轉向燈,在設置相應的位置后,在工具右側‘Attributes’欄下面,可以通過‘Opacity’選項設置其初始透明度。

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

圖3.設置對象透明度

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

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

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

圖4. 進行LVGL控件裁剪

2.RTC任務

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

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

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

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

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

3. SHELL命令任務

SHELL命令任務可以幫助在程序運行時候進行負載分析等功能。本工程中添加了通過SHELL命令設置時間的功能,現在就來以此功能為例,講講SHELL命令任務的添加。

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

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

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

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

    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();        
      }
    }


總結

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

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

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

審核編輯:湯梓紅

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

    關注

    146

    文章

    17154

    瀏覽量

    351277
  • 恩智浦
    +關注

    關注

    14

    文章

    5861

    瀏覽量

    107499
  • RT
    RT
    +關注

    關注

    0

    文章

    73

    瀏覽量

    40045
  • GUI
    GUI
    +關注

    關注

    3

    文章

    660

    瀏覽量

    39693
  • 圖形界面
    +關注

    關注

    0

    文章

    37

    瀏覽量

    7375

原文標題:在i.MX RT平臺上開發圖形界面工程

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

收藏 人收藏

    評論

    相關推薦

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

    調試 i.MX RT FreeRTOS MCUXpresso SDK工程的時候, 很多網友需要添加查看每個task的runtime功能。
    的頭像 發表于 06-09 09:30 ?1309次閱讀
    <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平臺內存建議

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

    基于i.MX 6系列的智能設備SABRE開發平臺

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

    i.MX RT1050平臺的相關資料推薦

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

    01:i.MX RT的市場應用和參考解決方案

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

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

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

    i.MX RT10XX系列平臺上進行OTA

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

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

    的首款跨界處理器。該處理器具備應用處理器的高性能與高度集成的優勢,更具有微控制器的易用性和實時功能。NXP Semiconductors(恩智浦半導體)公司根據用戶成本需求, i.MX RT1050 處理器的價格上做出調整,性
    發表于 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開發筆記-08 | i.MX RT1062嵌套中斷向量控制器NVIC(按鍵中斷檢測)

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

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

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

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

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

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

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

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

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

    i.MX RT的FlexRAM配置問題

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

    基于NXP i.MX RT117H智能人機界面方案

    基于NXP i.MX RT117H智能人機界面方案
    的頭像 發表于 10-30 18:22 ?670次閱讀
    基于NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>117H智能人機<b class='flag-5'>界面</b>方案
    主站蜘蛛池模板: 色婷婷亚洲精品天天综合影院| 久久影院午夜理论片无码| 国产午夜人做人免费视频中文| 美女岔开腿露出粉嫩花苞| 亚洲无线观看国产| 国产免费人成在线看视频| 日本xxxx96| qvod播放电影| 蜜桃无码AV视频在线观看| 中国少妇内射XXXX狠干| 久久er99热精品一区二区| 亚洲国产欧美国产综合在线| 国产日韩欧美另类| 午夜福利电影| 国产亚洲精品久久久久久入口| 乌克兰少妇大胆大BBW| 疯狂小护士| 我的年轻漂亮继坶三级| 国产成人免费观看| 无码射肉在线播放视频| 国产精品一区二区AV白丝在线| 掀开奶罩边躁狠狠躁软学生| 国产亚洲国际精品福利| 亚洲、国产综合视频| 国产中文视频| 亚洲日韩国产成网站在线| 好男人在线观看视频观看高清视频免费 | 精品无码日本蜜桃麻豆| 亚洲精品AV无码重口另类| 好男人在线高清WWW免费观看| 亚洲精品久久久一区| 精品国产mmd在线观看| 亚洲伊人久久网| 快播成电影人网址| avv天堂| 色多多污污下载| 国产亚洲精品久久综合阿香蕉| 一区二区视频在线观看高清视频在线| 久久秋霞理伦片| RUNAWAY韩国动漫免费官网版 | 免费鲁丝片一级在线观看|