日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LTDC/DMA2D—液晶显示

發(fā)布時(shí)間:2023/11/29 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LTDC/DMA2D—液晶显示 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本章參考資料:《STM32F4xx 參考手冊(cè) 2》、《STM32F4xx 規(guī)格書》、庫幫助文檔
stm32f4xx_dsp_stdperiph_lib_um.chm》。
關(guān)于開發(fā)板配套的液晶屏參數(shù)可查閱《5.0 寸液晶屏數(shù)據(jù)手冊(cè)》配套資料獲知。
顯示器簡(jiǎn)介
顯示器屬于計(jì)算機(jī)的 I/O 設(shè)備,即輸入輸出設(shè)備。它是一種將特定電子信息輸出到屏
幕上再反射到人眼的顯示工具。 常見的有 CRT 顯示器、液晶顯示器、 LED 點(diǎn)陣顯示器及
OLED 顯示器。
液晶顯示器
液晶顯示器,簡(jiǎn)稱 LCD(Liquid Crystal Display),相對(duì)于上一代 CRT 顯示器(陰極射線
管顯示器)LCD 顯示器具有功耗低、體積小、承載的信息量大及不傷眼的優(yōu)點(diǎn),因而它成
為了現(xiàn)在的主流電子顯示設(shè)備,其中包括電視、電腦顯示器、手機(jī)屏幕及各種嵌入式設(shè)備
的顯示器。27-1 是液晶電視與 CRT 電視的外觀對(duì)比,很明顯液晶電視更薄,“時(shí)尚”
是液晶電視給人的第一印象,而 CRT 電視則感覺很“笨重”。

?

液晶是一種介于固體和液體之間的特殊物質(zhì),它是一種有機(jī)化合物,常態(tài)下呈液態(tài),
但是它的分子排列卻和固體晶體一樣非常規(guī)則,因此取名液晶。 如果給液晶施加電場(chǎng),會(huì)
改變它的分子排列, 從而改變光線的傳播方向, 配合偏振光片,它就具有控制光線透過率
的作用,再配合彩色濾光片,改變加給液晶電壓大小,就能改變某一顏色透光量的多少,
27-2 中的就是綠色顯示結(jié)構(gòu)。 利用這種原理,做出可控紅、綠、藍(lán)光輸出強(qiáng)度的顯示結(jié)
構(gòu),把三種顯示結(jié)構(gòu)組成一個(gè)顯示單位,通過控制紅綠藍(lán)的強(qiáng)度,可以使該單位混合輸出
不同的色彩,這樣的一個(gè)顯示單位被稱為像素。

?

注意液晶本身是不發(fā)光的,所以需要有一個(gè)背光燈提供光源,光線經(jīng)過一系列處理過
程才到輸出,所以輸出的光線強(qiáng)度是要比光源的強(qiáng)度低很多的,比較浪費(fèi)能源(當(dāng)然,比
CRT 顯示器還是節(jié)能多了)。而且這些處理過程會(huì)導(dǎo)致顯示方向比較窄,也就是它的視角較
小,從側(cè)面看屏幕會(huì)看不清它的顯示內(nèi)容。另外,輸出的色彩變換時(shí),液晶分子轉(zhuǎn)動(dòng)也需
要消耗一定的時(shí)間,導(dǎo)致屏幕的響應(yīng)速度低。
LED OLED 顯示器
LED 點(diǎn)陣顯示器不存在以上液晶顯示器的問題, LED 點(diǎn)陣彩色顯示器的單個(gè)像素點(diǎn)內(nèi)
包含紅綠藍(lán)三色 LED 燈,顯示原理類似我們實(shí)驗(yàn)板上的 LED 彩燈,通過控制紅綠藍(lán)顏色
的強(qiáng)度進(jìn)行混色,實(shí)現(xiàn)全彩顏色輸出,多個(gè)像素點(diǎn)構(gòu)成一個(gè)屏幕。由于每個(gè)像素點(diǎn)都是
LED 燈自發(fā)光的,所以在戶外白天也顯示得非常清晰,但由于 LED 燈體積較大,導(dǎo)致屏幕
的像素密度低,所以它一般只適合用于廣場(chǎng)上的巨型顯示器。相對(duì)來說,單色的 LED 點(diǎn)陣
顯示器應(yīng)用得更廣泛,如公交車上的信息展示牌、店招等,見圖 27-3。

新一代的 OLED 顯示器與 LED 點(diǎn)陣彩色顯示器的原理類似,但由于它采用的像素單元
是“有機(jī)發(fā)光二極管” (Organic Light Emitting Diode),所以像素密度比普通 LED 點(diǎn)陣顯示
器高得多,見圖 27-5。

?

OLED 顯示器不需要背光源、對(duì)比度高、輕薄、視角廣及響應(yīng)速度快等優(yōu)點(diǎn)。待到生
產(chǎn)工藝更加成熟時(shí),必將取代現(xiàn)在液晶顯示器的地位,見圖 27-5。

?

?顯示器的基本參數(shù)
不管是哪一種顯示器,都有一定的參數(shù)用于描述它們的特性,各個(gè)參數(shù)介紹如下:
(1) 像素
像素是組成圖像的最基本單元要素,顯示器的像素指它成像最小的點(diǎn),即前面講解液
晶原理中提到的一個(gè)顯示單元。
(1) 分辨率
一些嵌入式設(shè)備的顯示器常常以“行像素值 x 列像素值”表示屏幕的分辨率。如分辨
800x480 表示該顯示器的每一行有 800 個(gè)像素點(diǎn),每一列有 480 個(gè)像素點(diǎn),也可理
解為有 800 列, 480 行。
(2) 色彩深度
色彩深度指顯示器的每個(gè)像素點(diǎn)能表示多少種顏色,一般用“位” (bit)來表示。如單
色屏的每個(gè)像素點(diǎn)能表示亮或滅兩種狀態(tài)(即實(shí)際上能顯示 2 種顏色),用 1 個(gè)數(shù)據(jù)位

就可以表示像素點(diǎn)的所有狀態(tài),所以它的色彩深度為 1bit,其它常見的顯示屏色深為
16bit24bit
(3) 顯示器尺寸
顯示器的大小一般以英寸表示,如 5 英寸、 21 英寸、 24 英寸等,這個(gè)長(zhǎng)度是指屏幕對(duì)
角線的長(zhǎng)度, 通過顯示器的對(duì)角線長(zhǎng)度及長(zhǎng)寬比可確定顯示器的實(shí)際長(zhǎng)寬尺寸。
(4) 點(diǎn)距
點(diǎn)距指兩個(gè)相鄰像素點(diǎn)之間的距離, 它會(huì)影響畫質(zhì)的細(xì)膩度及觀看距離,相同尺寸的
屏幕,若分辨率越高,則點(diǎn)距越小,畫質(zhì)越細(xì)膩。如現(xiàn)在有些手機(jī)的屏幕分辨率比電
腦顯示器的還大,這是手機(jī)屏幕點(diǎn)距小的原因; LED 點(diǎn)陣顯示屏的點(diǎn)距一般都比較大,
所以適合遠(yuǎn)距離觀看。
STM32F429 系列的芯片不需要額外的液晶控制器,也就是說它把專用液晶控制器的功能集成到?STM32F429?芯片內(nèi)部了,節(jié)約
了額外的控制器成本。?

(1) RGB 信號(hào)線
RGB 信號(hào)線各有 8 根,分別用于表示液晶屏一個(gè)像素點(diǎn)的紅、綠、藍(lán)顏色分量。使用
紅綠藍(lán)顏色分量來表示顏色是一種通用的做法,打開 Windows 系統(tǒng)自帶的畫板調(diào)色工
具,可看到顏色的紅綠藍(lán)分量值,見圖 27-7。常見的顏色表示會(huì)在“RGB”后面附帶
各個(gè)顏色分量值的數(shù)據(jù)位數(shù),如 RGB565 表示紅綠藍(lán)的數(shù)據(jù)線數(shù)分別為 565 根,
一共為 16 個(gè)數(shù)據(jù)位,可表示 216 種顏色;而這個(gè)液晶屏的種顏色分量的數(shù)據(jù)線都有 8
根,所以它支持 RGB888 格式,一共 24 位數(shù)據(jù)線,可表示的顏色為 224種。

(2) 同步時(shí)鐘信號(hào) CLK
液晶屏與外部使用同步通訊方式,以 CLK 信號(hào)作為同步時(shí)鐘,在同步時(shí)鐘的驅(qū)動(dòng)下,
每個(gè)時(shí)鐘傳輸一個(gè)像素點(diǎn)數(shù)據(jù)。
(3) 水平同步信號(hào) HSYNC
水平同步信號(hào) HSYNC(Horizontal Sync)用于表示液晶屏一行像素?cái)?shù)據(jù)的傳輸結(jié)束,每
傳輸完成液晶屏的一行像素?cái)?shù)據(jù)時(shí), HSYNC 會(huì)發(fā)生電平跳變,如分辨率為 800x480
顯示屏(800 列, 480 ),傳輸一幀的圖像 HSYNC 的電平會(huì)跳變 480 次。
(4) 垂直同步信號(hào) VSYNC
垂直同步信號(hào) VSYNC(Vertical Sync)用于表示液晶屏一幀像素?cái)?shù)據(jù)的傳輸結(jié)束,每傳
輸完成一幀像素?cái)?shù)據(jù)時(shí), VSYNC 會(huì)發(fā)生電平跳變。其中“幀”是圖像的單位,一幅
圖像稱為一幀,在液晶屏中,一幀指一個(gè)完整屏液晶像素點(diǎn)。人們常常用“幀/秒”來
表示液晶屏的刷新特性,即液晶屏每秒可以顯示多少幀圖像,如液晶屏以 60 /秒的
速率運(yùn)行時(shí), VSYNC 每秒鐘電平會(huì)跳變 60 次。
(5) 數(shù)據(jù)使能信號(hào) DE
數(shù)據(jù)使能信號(hào) DE(Data Enable)用于表示數(shù)據(jù)的有效性,當(dāng) DE 信號(hào)線為高電平時(shí),
RGB 信號(hào)線表示的數(shù)據(jù)有效。

液晶數(shù)據(jù)傳輸時(shí)序
通過上述信號(hào)線向液晶屏傳輸像素?cái)?shù)據(jù)時(shí),各信號(hào)線的時(shí)序見圖 27-8。 圖中表示的是
向液晶屏傳輸一幀圖像數(shù)據(jù)的時(shí)序, 中間省略了多行及多個(gè)像素點(diǎn)。

液晶屏顯示的圖像可看作一個(gè)矩形,結(jié)合圖 27-9 來理解。液晶屏有一個(gè)顯示指針,它
指向?qū)⒁@示的像素。顯示指針的掃描方向方向從左到右、從上到下,一個(gè)像素點(diǎn)一個(gè)像
素點(diǎn)地描繪圖形。這些像素點(diǎn)的數(shù)據(jù)通過 RGB 數(shù)據(jù)線傳輸至液晶屏,它們?cè)谕綍r(shí)鐘
CLK 的驅(qū)動(dòng)下一個(gè)一個(gè)地傳輸?shù)揭壕林?#xff0c;交給顯示指針,傳輸完成一行時(shí),水平同步信
號(hào) HSYNC 電平跳變一次,而傳輸完一幀時(shí) VSYNC 電平跳變一次。

顯存
液晶屏中的每個(gè)像素點(diǎn)都是數(shù)據(jù),在實(shí)際應(yīng)用中需要把每個(gè)像素點(diǎn)的數(shù)據(jù)緩存起來,
再傳輸給液晶屏,這種存儲(chǔ)顯示數(shù)據(jù)的存儲(chǔ)器被稱為顯存。顯存一般至少要能存儲(chǔ)液晶屏
的一幀顯示數(shù)據(jù),如分辨率為 800x480 的液晶屏,使用 RGB888 格式顯示,它的一幀顯示
數(shù)據(jù)大小為: 3x800x480=1152000 字節(jié);若使用 RGB565 格式顯示,一幀顯示數(shù)據(jù)大小為:
2x800x480=768000 字節(jié)。

常見的顏色表示會(huì)在“RGB”后面附帶各個(gè)顏色分量值的數(shù)據(jù)位數(shù),如RGB565
表示紅綠藍(lán)的數(shù)據(jù)線數(shù)分別為56、 5根,一共為16個(gè)數(shù)據(jù)位,可表示216
種顏色;而我們這個(gè)液晶屏的種顏色分量的數(shù)據(jù)線都有8根,所以它支持
RGB888格式,一共24位數(shù)據(jù)線,可表示的顏色為224種。

RGB后面的數(shù)值,分別代表其表示顏色的bits。

?

LCD-TFT 控制器 (LTDC)
LTDC 液晶控制器簡(jiǎn)介
STM32F429 系列芯片內(nèi)部自帶一個(gè) LTDC 液晶控制器,使用 SDRAM 的部分空間作為
顯存,可直接控制液晶面板,無需額外增加液晶控制器芯片。 STM32 LTDC 液晶控制器
最高支持 800x600 分辨率的屏幕;可支持多種顏色格式,包括 RGB888、 RGB565
ARGB8888 ARGB1555 (其中的“A”是指透明像素);支持 2 層顯示數(shù)據(jù)混合,利用這
個(gè)特性,可高效地做出背景和前景分離的顯示效果,如以視頻為背景,在前景顯示彈幕。
圖像數(shù)據(jù)混合
LTDC 外設(shè)支持 2 層數(shù)據(jù)混合,混合前使用 2 層數(shù)據(jù)源,分別為前景層和背景層,見
27-10。在輸出時(shí),實(shí)際上液晶屏只能顯示一層圖像,所以 LTDC 在輸出數(shù)據(jù)到液晶屏
前需要把 2 層圖像混合成一層,跟 Photoshop 軟件的分層合成圖片過程類似?;旌蠒r(shí),直
接用前景層中的不透明像素替換相同位置的背景像素;而前景層中透明像素的位置,則使
用背景的像素?cái)?shù)據(jù),即顯示背景層的像素。

?

如果想使用圖像混合功能,前景層必須使用包含透明的像素格式,如 ARGB1555
ARGB8888。其中 ARGB1555 使用 1 個(gè)數(shù)據(jù)位表示透明元素,它只能表示像素是透明或不
透明,當(dāng)最高位(即“A”位)1 時(shí),表示這是一個(gè)不透明的像素,具體顏色值為 RGB
表示的顏色,而當(dāng)最高位為 0 時(shí),表示這是一個(gè)完全透明的像素, RGB 位的數(shù)據(jù)無效;而
ARGB8888 的像素格式使用 8 個(gè)數(shù)據(jù)位表示透明元素,它使用高 8 位表示“透明度” (即代
表“A”的 8 個(gè)數(shù)據(jù)位),若 A 的值為“0xFF”,則表示這個(gè)像素完全不透明,若 A 的值為
0x00”則表示這個(gè)像素完全透明,介于它們之間的值表示其 RGB 顏色不同程度的透明度,
即混合后背景像素根據(jù)這個(gè)值按比例來表示。
注意液晶屏本身是沒有透明度概念的,如 24 位液晶屏的像素?cái)?shù)據(jù)格式是 RGB888
RGB 顏色各有對(duì)應(yīng)的 8 根數(shù)據(jù)線,不存在用于表示透明度的數(shù)據(jù)線,所以實(shí)際上 ARGB
是針對(duì)內(nèi)部分層數(shù)據(jù)處理的格式,最終經(jīng)過混合運(yùn)算得出直接顏色數(shù)據(jù) RGB888 才能交給
液晶屏顯示。

?

圖像處理單元
LTDC 框圖標(biāo)號(hào)?表示的是圖像處理單元,它通過“AHB 接口”獲取顯存中的數(shù)據(jù),
然后按分層把數(shù)據(jù)分別發(fā)送到兩個(gè)“層 FIFO”緩存,每個(gè) FIFO 可緩存 64x32 位的數(shù)據(jù),
接著從緩存中獲取數(shù)據(jù)交給“PFC(像素格式轉(zhuǎn)換器),它把數(shù)據(jù)從像素格式轉(zhuǎn)換成字
(ARGB8888)的格式,再經(jīng)過“混合單元”把兩層數(shù)據(jù)合并起來,最終混合得到的是單層要
顯示的數(shù)據(jù),通過信號(hào)線輸出到液晶面板。這部分結(jié)構(gòu)與 DMA2D 的很類似,我們?cè)谙乱?br />小節(jié)詳細(xì)講解。
在輸出前混合單元的數(shù)據(jù)還經(jīng)過一個(gè)“抖動(dòng)單元”,它的作用是當(dāng)像素?cái)?shù)據(jù)格式的色
深大于液晶面板實(shí)際色深時(shí),對(duì)像素?cái)?shù)據(jù)顏色進(jìn)行舍入操作,如向 18 位顯示器上顯示 24
位數(shù)據(jù)時(shí),抖動(dòng)單元把像素?cái)?shù)據(jù)的低 6 位與閾值比較,若大于閾值,則向數(shù)據(jù)的第 7 位進(jìn)
1,否則直接舍掉低 6 位。

配置和狀態(tài)寄存器
框圖中標(biāo)號(hào)?表示的是 LTDC 的控制邏輯,它包含了 LTDC 的各種配置和狀態(tài)寄存器。
如配置與液晶面板通訊時(shí)信號(hào)線的有效電平、各種時(shí)間參數(shù)、有效數(shù)據(jù)寬度、像素格式及
顯存址等等, LTDC 外設(shè)根據(jù)這些配置控制數(shù)據(jù)輸出,使用 AHB 接口從顯存地址中搬運(yùn)數(shù)
據(jù)到液晶面板。還有一系列用于指示當(dāng)前顯示狀態(tài)和位置的狀態(tài)寄存器,通過讀取這些寄
存器可以了解 LTDC 的工作狀態(tài)。
時(shí)鐘信號(hào)
LTDC 外設(shè)使用 3 種時(shí)鐘信號(hào),包括 AHB 時(shí)鐘、 APB2 時(shí)鐘及像素時(shí)鐘 LCD_CLK。
AHB 時(shí)鐘用于驅(qū)動(dòng)數(shù)據(jù)從存儲(chǔ)器存儲(chǔ)到 FIFOAPB2 時(shí)鐘用于驅(qū)動(dòng) LTDC 的寄存器。而
LCD_CLK 用于生成與液晶面板通訊的同步時(shí)鐘,見圖 27-12,它的來源是 HSE(高速外部
晶振),經(jīng)過“/M”分頻因子分頻輸出到“PLLSAI”分頻器,信號(hào)由“PLLSAI”中的倍頻
因子 N 倍頻得到“PLLSAIN”時(shí)鐘、然后由“/R”因子分頻得到“PLLCDCLK”時(shí)鐘,再
經(jīng)過“DIV”因子得到“LCD-TFT clock”,“LCD-TFT clock”即通訊中的同步時(shí)鐘
LCD_CLK,它使用 LCD_CLK 引腳輸出。

?

??/************************************************2017.7.29***************************************************************/

LTDC 初始化結(jié)構(gòu)體

這里有很多涉及寄存器的東西,如果不是必要,不用自己去配置。

但是卻有幾個(gè)值得注意的地方:

第一:關(guān)于LTDC的引腳復(fù)用:

看到上圖不要以為L(zhǎng)CD_G3和LCD_B2可以同時(shí)使用一個(gè)引腳,LCD_B2還有其他引腳可以使用,只是提醒自己不要以為復(fù)用只有AF14的LCD,在AF9處還隱藏著有LCD的復(fù)用功能。

有可能是復(fù)用AF14也可能是復(fù)用AF9,具體如何選擇AF14還是AF9的復(fù)用呢?在stm32f4xx_gpio.h中:

期間當(dāng)然還有更多的復(fù)用選擇:

需要注意的是這里L(fēng)TDC復(fù)用不是單純的只有AF14,還有AF9的。

第二點(diǎn):用sdram寫點(diǎn)刷屏方式:

?

?這樣可能會(huì)在屏幕下方有亂碼或者花屏這樣的現(xiàn)象,此時(shí)需要更改sdram中的一個(gè)配置:

static void SDRAM_InitSequence(void)函數(shù)中的:

突發(fā)長(zhǎng)度如果配置成8可能會(huì)出現(xiàn)上面所說的花屏問題,改成4之后,得到了解決。

?/************************************************2017.7.29***************************************************************/

?

轉(zhuǎn)載于:https://www.cnblogs.com/yangguang-it/p/7227356.html

總結(jié)

以上是生活随笔為你收集整理的LTDC/DMA2D—液晶显示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。