chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

驚艷就在眼前!來感受先楫MCU八圖層高清顯示

先楫半導體HPMicro ? 2022-07-02 11:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡 介

HPM6700/6400系列 MCU來自上海先楫半導體科技有限公司的高性能實時RISC-V微控制器,為工業(yè)自動化及邊緣計算應用提供了極大的算力、高效的控制能力及豐富的多媒體功能。HPM6700/6400自帶的顯示控制系統(tǒng),包括LCD控制器及2D圖形加速單元,性能也非常強悍,可以輕松驅(qū)動1366x768高分辨率的LCD屏,且可達到60fps的高刷新幀率。

本文主要介紹了HPM6700/6400的顯示控制系統(tǒng),包括LCD控制器和2D圖形加速單元,并使用LVGL圖形庫開發(fā)的應用示例,方便開發(fā)者快速開發(fā)。

LCD 控制器 (LCDC)

HPM6700/6400系列的圖形顯示接口 LCDC 支持連接多種不同種類,不同分辨率的 LCD(TFT) 顯示屏。LCDC 支持 24 位并行數(shù)據(jù)線,支持時鐘信號 PCLK,支持 HSYNC 和 VSYNC 同步信號。LCDC 可以作為總線主設備讀取片上和片外的存儲器的圖像數(shù)據(jù),并發(fā)送到外部顯示屏上。LCDC 的特性如下:

支持多達 24 位 RGB 顯示接口;

內(nèi)置 DMA,作為總線主設備讀取顯存數(shù)據(jù);

支持可配置的分辨率顯示屏,刷新率可達 1366x768, 60 fps;

支持多種數(shù)據(jù)格式輸入 ARGB8888,RGB565,YUV422/YCbCr422,Y8,1bpp,2bpp,4bpp 和 8bpp;

支持多達8 個圖層 Alpha Blending(混合疊加),其中 2 個主圖層支持逐行 YUV422/YCbCr422;

支持最大 pixclk 為 85MHz 。

5e2f22da-f965-11ec-a2f4-dac502259ad0.png

LCDC 功能框圖


2D 圖形加速單元 (PDMA)

本產(chǎn)品支持 1 個 2D 圖形加速單元 PDMA。PDMA 支持處理逐行圖像數(shù)據(jù),支持按像素處理多種尺寸,多種顏色格式的圖形;

支持同時取2個圖層的數(shù)據(jù),每個圖層獨立啟用控制;

支持圖像格式轉(zhuǎn)換,包括ARGB8888,RGB565,YUV422H1P 圖像轉(zhuǎn)換;

支持圖像0°/90°/180°/270°旋轉(zhuǎn);

支持水平、垂直的翻轉(zhuǎn);

支持圖像縮放,X/Y拉伸、壓縮;

支持圖像截圖。

5e4578dc-f965-11ec-a2f4-dac502259ad0.pngPDMA功能框圖

LVGL 應用開發(fā)

1. LVGL 介紹

LVGL(輕巧而多功能的圖形庫)是一個免費的開放源代碼圖形庫,它提供創(chuàng)建具有易于使用的圖形元素,精美的視覺效果和低內(nèi)存占用的嵌入式GUI所需的一切。

主要特性:

功能強大的構建塊,例如按鈕,圖表,列表,滑塊,圖像等;

帶有動畫,抗鋸齒,不透明,平滑滾動的高級圖形各種輸入設備,例如觸摸板,鼠標,鍵盤,編碼器等;

支持UTF-8編碼的多語言;

多顯示器支持,如TFT,單色顯示器;

完全可定制的圖形元素;

獨立于任何微控制器或顯示器使用的硬件;

可擴展以使用很少的內(nèi)存(64 KB閃存,16 KB RAM)進行操作;

操作系統(tǒng),支持外部存儲器和GPU,但不是必需的;

單幀緩沖區(qū)操作,即使具有高級圖形效果;

C語言編寫,以實現(xiàn)最大的兼容性(與C ++兼容);

模擬器可在沒有嵌入式硬件的PC上進行嵌入式GUI設計。

可移植到MicroPython

可快速上手的教程、示例、主題;

豐富的文檔教程;

在MIT許可下免費和開源。

2. LVGL移植適配

官方已經(jīng)移植和適配好了LVGL,代碼結構如下:

?./lvgl庫本身

?./lv_drivers顯示和輸入設備驅(qū)動程序

?./lv_examples示例和演示

?Lvgl官方網(wǎng)站(https://docs.lvgl.io)

?Lvgl官方博客站點(https://blog.lvgl.io)

?Sim在線模擬器網(wǎng)站(https://sim.lvgl.io)

?lv_sim_... 適用于各種IDE和平臺的模擬器項目

?lv_port_... 移植到其他開發(fā)板

?lv_binding_... 綁定到其他語言

?lv _… 移植到其他平臺

其中,lvgl,lv_examples和lv_drivers是最受維護、關注的核心存儲庫。

5e6604d0-f965-11ec-a2f4-dac502259ad0.png

lv_drivers顯示接口:

要設置顯示,必須初始化 lv_disp_draw_buf_t 和 lv_disp_drv_t 變量。

lv_disp_draw_buf_t 保存顯示緩沖區(qū)信息的結構體

lv_disp_drv_t HAL要注冊的顯示驅(qū)動程序、與顯示交互并處理與圖形相關的結構體、回調(diào)函數(shù)。

顯示緩沖器:

關于緩沖區(qū)大小,有 3 種情況:

(1)一個緩沖區(qū):LVGL將屏幕的內(nèi)保存到緩沖區(qū)中并將其發(fā)送到顯示器。緩沖區(qū)可以小于屏幕。在這種情況下,較大的區(qū)域?qū)⒈恢禺嫵啥鄠€部分。如果只有很小的區(qū)域發(fā)生變化(例如按下按鈕),則只會刷新該部分的區(qū)域。

(2)兩個非屏幕大小的緩沖區(qū):具有兩個緩沖區(qū)的 LVGL 可以將其中一個作為顯示緩沖區(qū),而另一緩沖區(qū)的內(nèi)容發(fā)送到后臺顯示。應該使用 DMA 或其他硬件將數(shù)據(jù)傳輸?shù)斤@示器,以讓CPU同時繪圖。這樣,渲染和刷新并行處理。與一個緩沖區(qū)的情況類似,如果緩沖區(qū)小于要刷新的區(qū)域,LVGL將按塊繪制顯示內(nèi)容

(3)兩個屏幕大小的緩沖區(qū):與兩個非屏幕大小的緩沖區(qū)相反,LVGL將始終提供整個屏幕的內(nèi)容,而不僅僅是塊。這樣,驅(qū)動程序可以簡單地將幀緩沖區(qū)的地址更改為從 LVGL 接收的緩沖區(qū)。因此,當MCU具有 LCD/TFT 接口且?guī)彌_區(qū)只是 RAM 中的一個位置時,這種方法的效果很好。

顯示驅(qū)動器:

一旦緩沖區(qū)初始化準備就緒,就需要初始化顯示驅(qū)動程序。

lv_disp_drv_t的初始化,需要使用 lv_disp_drv_init(&disp_drv) 進行初始化。最后,要為 LVGL 注冊顯示設備,需要調(diào)用lv_disp_drv_register(&disp_drv)。

在最簡單的情況下,僅需要設置 lv_disp_drv_t 的以下兩個字段:

?draw_buf 指向已初始化的 lv_disp_buf_t 變量的指針。

?flush_cb 回調(diào)函數(shù),用于將緩沖區(qū)的內(nèi)容復制到顯示的特定區(qū)域。刷新準備就緒后,需要調(diào)用lv_disp_flush_ready()。LVGL可能會以多個塊呈現(xiàn)屏幕,因此多次調(diào)用flush_cb。使用 lv_disp_flush_is_last() 可以查看哪塊是最后渲染的。

其中,有一些可選的數(shù)據(jù)字段:

?hor_res 顯示器的水平分辨率。(默認為 lv_conf.h 中的 LV_HOR_RES_MAX )

?ver_res 顯示器的垂直分辨率。(默認為 lv_conf.h 中的 LV_VER_RES_MAX )

?color_chroma_key 色彩鍵控支持透明色。(默認為 lv_conf.h 中的 LV_COLOR_TRANSP )

?user_data 驅(qū)動程序的自定義用戶數(shù)據(jù)??梢栽?lv_conf.h 中修改其類型。

?anti-aliasing 使用抗鋸齒(anti-aliasing)(邊緣平滑)。缺省情況下默認為 lv_conf.h 中的 LV_ANTIALIAS 。

?rotated 如果 1 交換 hor_res 和 ver_res 。兩種情況下 LVGL 的繪制方向相同(從上到下的線條),因此還需要重新配置驅(qū)動程序以更改顯示器的填充方向。

?screen_transp 如果為 1 ,則屏幕可以具有透明或不透明的樣式。需要在 lv_conf.h 中啟用 LV_COLOR_SCREEN_TRANSP 。

要使用GPU,可以使用以下回調(diào):

?gpu_fill_cb 用顏色填充內(nèi)存中的區(qū)域。

?gpu_blend_cb 使用不透明度混合兩個內(nèi)存緩沖區(qū)。

?gpu_wait_cb 如果在 GPU 仍在運行 LVGL 的情況下返回了任何 GPU 函數(shù),則在需要確保GPU渲染就緒時將使用此函數(shù)。

其他一些可選的回調(diào),使單色、灰度或其他非標準RGB顯示一起使用時更輕松、優(yōu)化:

?rounder_cb 四舍五入要重繪的區(qū)域的坐標。例如。2x2像素可以轉(zhuǎn)換為2x8。如果顯示控制器只能刷新特定高度或?qū)挾鹊膮^(qū)域(對于單色顯示器,通常為8 px高),則可以使用它。

?set_px_cb 編寫顯示緩沖區(qū)的自定義函數(shù)。如果顯示器具有特殊的顏色格式,則可用于更緊湊地存儲像素。(例如1位單色,2位灰度等)。這樣,lv_disp_buf_t中使用的緩沖區(qū)可以較小,以僅保留給定區(qū)域大小所需的位數(shù)。set_px_cb不能與兩個屏幕大小的緩沖區(qū)一起顯示緩沖區(qū)配置。

?monitor_cb 回調(diào)函數(shù)告訴在多少時間內(nèi)刷新了多少像素。

?clean_dcache_cb清除與顯示相關的所有緩存的回調(diào)

lv_drivers顯示接口:

要設置輸入設備,必須初始化 lv_indev_drv_t 變量,類型(indev_drv.type)可以是:

?LV_INDEV_TYPE_POINTER觸摸板或鼠標

?LV_INDEV_TYPE_KEYPAD鍵盤或小鍵盤

?LV_INDEV_TYPE_ENCODER帶有左,右,推動選項的編碼器

?LV_INDEV_TYPE_BUTTON外部按鈕按下屏幕

3. 應用開發(fā)

LVGL圖形庫功能控件有很多,這里不在詳細介紹,詳細API介紹查閱LVGL官網(wǎng)。

LVGL主要控件功能有:

5e7c99ac-f965-11ec-a2f4-dac502259ad0.png

使用 lvgl 圖形庫之前,我們還必須初始化 lvgl 以及相關其他組件。初始化的順序為:


?調(diào)用 lv_init() 初始化 lvgl 庫;

?初始化驅(qū)動程序;

?在 LVGL 中注冊顯示和輸入設備驅(qū)動程序;

?在中斷中每隔 x毫秒調(diào)用 lv_tick_inc(x)用以告知 lvgl 經(jīng)過的時間;

?每隔 x毫秒定期調(diào)用 lv_task_handler()用以處理與 lvgl 相關的任務。

SquareLine_Studio設計器:

(1)創(chuàng)建項目

5e892f50-f965-11ec-a2f4-dac502259ad0.png

(2)控件布局設計

5ea08560-f965-11ec-a2f4-dac502259ad0.png

(3)代碼生成

5eb0e72a-f965-11ec-a2f4-dac502259ad0.png5ece55bc-f965-11ec-a2f4-dac502259ad0.png

(4)代碼適配工程

5ee02a44-f965-11ec-a2f4-dac502259ad0.png5eec8974-f965-11ec-a2f4-dac502259ad0.png

(5)添加事件響應代碼

運行效果:

5ef66426-f965-11ec-a2f4-dac502259ad0.gif

性能測試:

fps幀率:每秒鐘LCD圖形刷新的幀數(shù);

LVGL會通過內(nèi)部的tick,定時去刷屏幕;

10即1000ms/10ms=100FPS;

這個宏定義限定了LVGL刷屏幀率的上限,設定滿幀100幀;

使用全尺寸雙buffer。

實測結果:

5f5fef04-f965-11ec-a2f4-dac502259ad0.gif5fe88710-f965-11ec-a2f4-dac502259ad0.png

總 結

本文介紹了 HPM6700/6400 LCD 控制器和2D圖形加速單元模塊,同時介紹了 LVGL 圖形界面庫功能及移植適配要點,并基于 LVGL 圖形界面庫開發(fā)驅(qū)動點亮LCD屏的應用示例。根據(jù)實測結果,LCD 幀率可達到60fps。官方 HPM-SDK 已將LVGL圖形庫移植適配完成,也提供了基于 LVGL 的demo示例,用戶可以非常便捷的使用HPM6700/6400 SDK 來完成LCD相關的應用開發(fā)。


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

    關注

    146

    文章

    17984

    瀏覽量

    366924
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    半導體HPM6E8Y:實時控制芯片驅(qū)動的機器人關節(jié)“芯”時代

    及產(chǎn)品總監(jiān)費振東帶來了一款實時控制芯片驅(qū)動——HPM6E8Y。 ? ? 據(jù)費振東介紹,半導體HPM6E8Y系列高性能MCU芯片為機器人關節(jié)的高精度運動控制量身打造,具有高性能、高集成度、小封裝及簡單易用等特點。HPM6E8Y
    發(fā)表于 05-13 11:50 ?1226次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體HPM6E8Y:<b class='flag-5'>先</b><b class='flag-5'>楫</b>實時控制芯片驅(qū)動的機器人關節(jié)“芯”時代

    重磅更新 | 半導體HPM_APPS v1.9.0發(fā)布

    重磅更新 | 半導體HPM_APPS v1.9.0發(fā)布
    的頭像 發(fā)表于 05-13 11:29 ?593次閱讀
    重磅更新 | <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體HPM_APPS v1.9.0發(fā)布

    【強勢上新】HPM5E00:EtherCAT運動控制MCU,半導體再拓工業(yè)總線產(chǎn)品新版圖

    2025年5月6日 上海 |高性能微控制器及嵌入式解決方案提供商“上海半導體科技有限公司”(半導體,HPMicro)正式發(fā)布 新一代EtherCAT運動控制
    發(fā)表于 05-07 14:07 ?725次閱讀
    【強勢上新】HPM5E00:EtherCAT運動控制<b class='flag-5'>MCU</b>,<b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體再拓工業(yè)總線產(chǎn)品新版圖

    【強勢上新】HPM5E00:EtherCAT運動控制MCU半導體再拓工業(yè)總線產(chǎn)品新版圖

    2025年5月6日上海|高性能微控制器及嵌入式解決方案提供商“上海半導體科技有限公司”(半導體,HPMicro)正式發(fā)布新一代EtherCAT運動控制
    的頭像 發(fā)表于 05-06 11:09 ?550次閱讀
    【強勢上新】HPM5E00:EtherCAT運動控制<b class='flag-5'>MCU</b>,<b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體再拓工業(yè)總線產(chǎn)品新版圖

    半導體MCU具有哪些優(yōu)勢?

    半導體(HPMicro)成立于2020年6月,是一家專注于高性能嵌入式解決方案的半導體企業(yè),總部位于上海浦東軟件園。公司聚焦于研發(fā)高性能微控制器(MCU)、微處理器及配套外設芯片,并構建了完整
    發(fā)表于 04-14 10:04

    【HPMicro inside】半導體RISC-V MCU助力專業(yè)音頻技術的國產(chǎn)化突破

    題,匯聚全球音頻產(chǎn)業(yè)近百位技術領袖、權威專家及600余家聲學工程、消費電子領域領軍企業(yè),聚焦AI人工智能與音頻技術的深度融合創(chuàng)新。上海半導體科技有限公司(半導體,HPMicr
    的頭像 發(fā)表于 03-31 10:39 ?707次閱讀
    【HPMicro inside】<b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體RISC-V <b class='flag-5'>MCU</b>助力專業(yè)音頻技術的國產(chǎn)化突破

    半導體hpm_apps v1.7.0上線

    半導體hpm_apps v1.7.0上線
    的頭像 發(fā)表于 02-08 13:41 ?658次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體hpm_apps v1.7.0上線

    半導體HPM_SDK v1.8.0 發(fā)布

    半導體HPM_SDK v1.8.0 發(fā)布
    的頭像 發(fā)表于 02-08 13:39 ?650次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體HPM_SDK v1.8.0 發(fā)布

    半導體發(fā)布高性能HPM6E8Y系列MCU

    近日,上海半導體科技有限公司,國內(nèi)領先的高性能微控制器及嵌入式解決方案提供商,推出了專為機器人運動與控制設計的高性能MCU產(chǎn)品——HPM6E8Y系列。這一創(chuàng)新產(chǎn)品為當前蓬勃發(fā)展的機器人市場帶來了全新的活力。
    的頭像 發(fā)表于 01-23 15:40 ?671次閱讀

    半導體HPM OBOX 離線燒錄器正式發(fā)布

    在量產(chǎn)燒錄領域,一個令人振奮的消息傳來——終于可以擺脫上位機的束縛,實現(xiàn)更加高效、便捷的量產(chǎn)流程!這一切得益于半導體推出的離線OBOX,一款基于HPM 5361 MCU開發(fā)的創(chuàng)新離線燒錄器
    的頭像 發(fā)表于 01-16 15:29 ?677次閱讀

    CES 2025:半導體發(fā)布高性能機器人MCU

    半導體科技有限公司(半導體,HPMicro)閃耀登場。該公司發(fā)布了一款專注于機器人運動與控制的高性能MCU產(chǎn)品——HPM6E8Y系列,為當前火熱的機器人市場注入了新的活力。 HPM6E8Y系列
    的頭像 發(fā)表于 01-09 16:14 ?948次閱讀

    怎么從零基礎入門

    適合小白學習嗎,只有一點STM32基礎,網(wǎng)上的資料,好像入門的不多,學習群也不知道在哪里有,買了一塊HPM6E00EVK,現(xiàn)在只能看,無從下手,代碼架構好像也看不太明白,跟HAL庫差別很大,IDE好像也視頻資料不多,難道真的要從開始就放棄了嗎 
    發(fā)表于 10-21 13:18

    HPM6E00技術日 | 百人研討共話工業(yè)應用創(chuàng)新及發(fā)展趨勢

    現(xiàn)場交流氛圍熱烈。 活動開場,半導體市場銷售執(zhí)行副總裁陳丹率先發(fā)言:“從成立之初就一直致力于為中國市場提供具有創(chuàng)新價值的高性能MCU
    發(fā)表于 09-02 10:14

    戰(zhàn)略合作丨華秋商城攜手半導體,共創(chuàng)新篇

    2024年7月24日,上海半導體科技有限公司(半導體,HPMicro)正式授權深圳華秋電子有限公司代理商,授權產(chǎn)品為先半導體芯片及
    的頭像 發(fā)表于 08-30 12:05 ?1104次閱讀
    戰(zhàn)略合作丨華秋商城攜手<b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體,共創(chuàng)新篇

    半導體hpm_apps v1.6.0上線

    半導體hpm_apps v1.6.0上線
    的頭像 發(fā)表于 08-02 08:18 ?1526次閱讀
    <b class='flag-5'>先</b><b class='flag-5'>楫</b>半導體hpm_apps v1.6.0上線