一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內不再提示

使用FSMC接口來驅動8080接口LCD屏的問題

STM32單片機 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2021-06-29 09:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

在一些圖形界面應用中,系統(tǒng)架構會時常考慮使用 FSMC接口來驅動 8080接口的 LCD屏。在 MCU渲染完成,將framebuffer發(fā)送到 LCD時,有可能會遇到存儲大小端的問題。STM32MCU都采用 ARMCortex內核,內存使用小端格式。而 intel 8080接口的 LCD在傳輸 RGB數(shù)據(jù)時,使用的是大端格式。MCU在傳輸 RGB數(shù)據(jù)時,字節(jié)序有可能不匹配。在圖形界面應用中,像素格式一般會使用 RGB888或 RGB565。而在使用 FSMC接口驅動 8bit位寬的 LCD時,很可能會使用 RGB565格式。本文中會介紹兩種方法來處理8bit8080接口 RGB565格式圖像數(shù)據(jù)字節(jié)序問題。

圖像數(shù)據(jù)字節(jié)序

8bit8080 LCD在接收 RGB565數(shù)據(jù)時,會將第一個字節(jié)解析為{R4-R0,G5-G3}, 第二個字節(jié)解析為{G2-G0,B4-B0},并按這個順序接收所有數(shù)據(jù),如下圖:

a210c732-d86f-11eb-9e57-12bb97331649.png

而在 MCU內存中,數(shù)據(jù)按小端格式存放,RGB565數(shù)據(jù)存放的字節(jié)序如下:

a26017c4-d86f-11eb-9e57-12bb97331649.png

如果不做調整直接將 RGB數(shù)據(jù)發(fā)給 LCD,MCU會先發(fā)送 Byte0,再發(fā)送 Byte 1,這樣 LCD顯示的內容就會錯亂。對比上面兩張圖可以看出,只需將內存中 Byte0與 Byte1字節(jié)位置對調(Byteswap),就能滿足 LCD接口的字節(jié)序要求。可以直接使用 CPU進行 Byteswap,但這會消耗過多 CPU算力,同時也會占用更多內存。這里我們將使用硬件進行 Byteswap.

DMA2D 進行Byteswap

DMA2D是 ST為圖形應用專門設計并優(yōu)化的2D加速引擎,擁有豐富的功能。其字節(jié)序重排功能包含了Red blueswap以及 Byteswap特性。Red blueswap特性在 L4和 L4+系列 MCU都支持,而 Byteswap僅在L4+系列有支持。在 L4+系列上,通過配置 DMA2D_OPFCCR寄存器的 SB位,即可使能 Byteswap功能,在 DMA2D的outputFIFO中完成字節(jié)序調整,如下圖:

a26c2b5e-d86f-11eb-9e57-12bb97331649.png

因此在圖形界面應用中,需要 Byteswap時,可以考慮用 DMA2D來傳輸 RGB數(shù)據(jù)給 LCD。

GPDMA 進行Byteswap

在新推出的 U5系列芯片上,集成了 GPDMA模塊。這是新的通用DMA模塊,能在傳輸數(shù)據(jù)的同時,還有豐富的數(shù)據(jù)處理能力。在初始化GPDMA時,通過配置源和目的數(shù)據(jù)位寬為 DMA_SRC_DATAWIDTH_WORD,在數(shù)據(jù)處理中配置 DataExchange為 DMA_EXCHANGE_DEST_BYTE,如下面代碼,也能實現(xiàn)Byteswap功能。

a2754d74-d86f-11eb-9e57-12bb97331649.png

這樣,在圖形應用中,既能使用 DMA2D加速渲染過程,也能使用 GPDMA的數(shù)據(jù)處理能力。通過 GPDMA直接向FSMC接口輸出 Byteswap后的 RGB565格式的圖形數(shù)據(jù)給LCD。

小結

在驅動 8位 8080接口 LCD時,需要注意圖像數(shù)據(jù)字節(jié)序問題。使用 RGB565格式時,可以使用 DMA2D或 GPDMA來傳輸圖像數(shù)據(jù),同時對圖像數(shù)據(jù)做 Byteswap調整,滿足LCD的字節(jié)序要求。

責任編輯:haq

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

    關注

    34

    文章

    4520

    瀏覽量

    171645
  • 驅動
    +關注

    關注

    12

    文章

    1918

    瀏覽量

    86958

原文標題:工程師筆記 | 驅動 8 位 8080 接口 LCD 時的字節(jié)序問題

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何調用C的接口封裝micropyton接口?

    microPython的庫比較少,無法滿足需求,請問調用C的接口封裝micropyton接口如何操作?能否提供詳細步驟? 你好,可以參考micropython官方的教程添加自定義的
    發(fā)表于 06-23 07:17

    STM32U5+8bit_8080 LCD 怎么配置touchgfx?

    我參與的項目使用STM32U575做為主空,使用fmc驅動8080接口的8bitLCD,配置touchgfx時不能配置為8bit,其他選型例如DMA2D也使用不了,我該怎么做?
    發(fā)表于 06-09 06:23

    低電流LCD驅動抗噪液晶驅動芯片VKL060

    )的LCD。單片機可通過I2C接口配置顯示參數(shù)和讀寫顯示數(shù)據(jù),可配置4種功耗模式,也可通過關顯示進入省電模式。其高抗干擾,超低功耗的特性適用于水電氣表以及工控儀表類產品。Z166+45 特點: ?工作電壓
    發(fā)表于 05-12 17:07

    STM32U5+8bit_8080 LCD怎么配置touchgfx?

    我參與的項目使用STM32U575做為主空,使用fmc驅動8080接口的8bitLCD,配置touchgfx時不能配置為8bit,其他選型例如DMA2D也使用不了,我該怎么做?
    發(fā)表于 04-28 08:12

    STM32U5+8bit_8080 LCD怎么配置touchgfx?

    我參與的項目使用STM32U575做為主空,使用fmc驅動8080接口的8bitLCD,配置touchgfx時不能配置為8bit,其他選型例如DMA2D也使用不了,我該怎么做?
    發(fā)表于 04-27 07:11

    電容串行接口

    帝晶智慧電容串行接口
    的頭像 發(fā)表于 03-11 17:21 ?1393次閱讀

    BTB擴展接口LCD、Camera、UART、I2C等|詳解篇

    今天我們學習的是BTB擴展接口LCD、Camera、UART、I2C詳解,特別分享Air201硬件BTB擴展接口相關內容。
    的頭像 發(fā)表于 11-30 09:39 ?1099次閱讀
    BTB擴展<b class='flag-5'>接口</b>:<b class='flag-5'>LCD</b>、Camera、UART、I2C等|詳解篇

    飛凌嵌入式-ELFBOARD-RGB LCD接口的PCB設計要點

    :VGA、DVI、HDMI、DP、USB-C、Type-C等,內接顯示接口(直接接到顯示的)有:MIPI、LVDS、eDP和LCD RGB接口
    發(fā)表于 11-12 11:51

    飛凌嵌入式-ELBOARD-RGB LCD顯示接口的PCB設計要點

    :VGA、DVI、HDMI、DP、USB-C、Type-C等,內接顯示接口(直接接到顯示的)有:MIPI、LVDS、eDP和LCD RGB接口
    發(fā)表于 11-12 11:49

    dp接口如何實現(xiàn)多顯示

    DP接口(DisplayPort)是一種數(shù)字顯示接口標準,用于連接顯示器和視頻源,如計算機、游戲機等。它支持高分辨率顯示、高刷新率和多顯示。 DP接口的基本原理 DisplayPor
    的頭像 發(fā)表于 10-30 13:50 ?3393次閱讀

    通用抗干擾段碼驅動液晶驅動芯片LCD驅動芯片VK1626(48SEGx16COM)

    概述 VK1626是一個點陣式存儲映射的LCD驅動器,可支持最大768點(48EGx16COM)的LCD。 單片機可通過3/4線串行接口
    發(fā)表于 10-12 15:44

    lvds接口需要驅動

    廣泛應用于高速數(shù)據(jù)傳輸?shù)?b class='flag-5'>接口標準,特別是在大顯示、通信設備和工業(yè)控制等領域。它采用低電壓差分信號傳輸數(shù)據(jù),具有低功耗、低誤碼率、低串擾和低輻射等優(yōu)點。LVDS接口通過一對差分信號線
    的頭像 發(fā)表于 10-06 15:06 ?2964次閱讀
    lvds<b class='flag-5'>接口</b>需要<b class='flag-5'>驅動</b>嗎

    驅可觸摸TFT-LCD mcu(專用開發(fā)板方案)

    ^?^ -M4,安謀科技“星辰”STAR-MC1內核 主頻:60MHz ~ 150MHz SDRAM:2MB~16MB LCD接口:I8080,RGB565,RGB888,MIPI(研發(fā)中...) 硬件解碼器
    發(fā)表于 09-27 09:53

    dsi接口,支持觸摸控制嗎

    DSI(Digital Serial Interface)接口是一種數(shù)字串行通信接口,主要用于LCD(液晶顯示器)等顯示設備的驅動。DSI接口
    的頭像 發(fā)表于 08-20 11:44 ?1107次閱讀

    瑞薩e2studio----SPI驅動TFT-LCD

    在嵌入式領域,TFT-LCD是最常用的顯示解決方案之一,因為它們提供了豐富的顏色和高分辨率的圖像顯示能力。RA4M2作為瑞薩的微控制器系列,具備了強大的處理能力和多種通信接口,非常適合于驅動
    的頭像 發(fā)表于 08-07 17:46 ?2402次閱讀
    瑞薩e2studio----SPI<b class='flag-5'>驅動</b>TFT-<b class='flag-5'>LCD</b><b class='flag-5'>屏</b>