色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

STM32F429 LTDC驅(qū)動(dòng)RGB屏:寄存器級(jí)時(shí)序、顯存與調(diào)試全解析

STM32F429 LTDC驅(qū)動(dòng)RGB屏:寄存器級(jí)時(shí)序、顯存與調(diào)試全解析 簡(jiǎn)介本資源是面向嵌入式開(kāi)發(fā)初學(xué)者與中級(jí)工程師的STM32F429 RGB屏驅(qū)動(dòng)實(shí)戰(zhàn)項(xiàng)目聚焦4.3寸800×480分辨率LCD的LTDC底層寄存器級(jí)驅(qū)動(dòng)實(shí)現(xiàn)解決圖形顯示中時(shí)序配置、幀緩沖管理、多圖層疊加及DMA2D加速等核心難點(diǎn)適用于工業(yè)HMI、智能儀表等需自主可控顯示方案的場(chǎng)景。壓縮包共42個(gè)文件含23個(gè)頭文件定義寄存器地址、結(jié)構(gòu)體及宏、14個(gè)C源文件覆蓋系統(tǒng)時(shí)鐘、LTDC初始化、LCD底層驅(qū)動(dòng)、SDRAM顯存分配、LED/OLED/KEY/TPAD等外設(shè)協(xié)同邏輯以及Keil工程配置文件uvprojx/uvoptx、啟動(dòng)腳本s、調(diào)試配置ini和可執(zhí)行hex文件整體僅238KB輕量易集成。已有1091人學(xué)習(xí)下載提供完整可編譯運(yùn)行的寄存器庫(kù)工程含清晰分層的HARDWARE模塊LCD/SDRAM/LED/TIMER等與USER主邏輯無(wú)需HAL庫(kù)依賴(lài)便于深入理解LTDC硬件機(jī)制與內(nèi)存帶寬優(yōu)化實(shí)踐。 做F429顯示方案的時(shí)候我一開(kāi)始也會(huì)想不就是把屏幕點(diǎn)亮嘛SPI屏、FSMC屏都寫(xiě)過(guò)LTDC能有多難。真把一塊4.3寸800x480的RGB屏接到LTDC上才發(fā)現(xiàn)這套東西和以前那些“控制器在屏端”的方案完全不是一個(gè)思路。如果你手頭正準(zhǔn)備用STM32F429跑LTDC并且想用寄存器庫(kù)不依賴(lài)HAL把這套驅(qū)動(dòng)徹底搞明白這篇應(yīng)該能幫你省掉不少?gòu)澛?。這篇文章不是貼一段能跑的代碼就完事我會(huì)把LTDC的時(shí)序怎么算、寄存器怎么填、幀緩沖為什么必須放SDRAM、畫(huà)面撕裂到底怎么壓住這些關(guān)鍵問(wèn)題逐個(gè)拆開(kāi)講。適合兩類(lèi)人看一是剛接觸RGB屏、想搞懂LTDC底層機(jī)制的二是已經(jīng)在HAL庫(kù)里調(diào)通了但想用寄存器庫(kù)重寫(xiě)或者排查疑難問(wèn)題的。1. LTDC和以往顯示方案的本質(zhì)區(qū)別屏端沒(méi)有控制器了1.1 從FSMC“寫(xiě)寄存器”到LTDC“刷像素”之前用FSMC驅(qū)動(dòng)TFTLCD比如常見(jiàn)的ILI9341或者NT35510MCU的工作本質(zhì)是“往屏的控制寄存器里寫(xiě)命令和數(shù)據(jù)”。屏內(nèi)部有一顆控制芯片負(fù)責(zé)把寫(xiě)入的GRAM數(shù)據(jù)按行列掃描刷新到液晶面板上。FSMC只是提供了一組類(lèi)似外部存儲(chǔ)器的讀寫(xiě)時(shí)序讓CPU寫(xiě)GRAM的速度更快而已。這種方案很成熟但問(wèn)題在于控制芯片能力有限分辨率做高之后內(nèi)部GRAM不夠、刷新率上不去成本也壓在屏端。LTDC是F429內(nèi)部集成的一個(gè)液晶控制器它把原來(lái)在屏端控制芯片的工作搬到了MCU里。MCU通過(guò)LTDC直接對(duì)外輸出像素時(shí)鐘DOTCLK、行同步HSYNC、幀同步VSYNC、數(shù)據(jù)使能DE以及RGB數(shù)據(jù)線。也就是說(shuō)RGB屏本身幾乎沒(méi)有“智能”它只是一塊負(fù)責(zé)把數(shù)據(jù)線上的電壓轉(zhuǎn)換成液晶偏轉(zhuǎn)的矩陣。你給它對(duì)的時(shí)鐘、對(duì)的同步信號(hào)、對(duì)的像素?cái)?shù)據(jù)它才會(huì)穩(wěn)定地顯示出畫(huà)面。這個(gè)區(qū)別直接影響了你的設(shè)計(jì)思路以前FSMC驅(qū)動(dòng)通常不需要什么顯存屏內(nèi)部有GRAM現(xiàn)在LTDC方案所有像素?cái)?shù)據(jù)必須由MCU側(cè)的顯存FrameBuffer持續(xù)提供給LTDCMCU相當(dāng)于同時(shí)在當(dāng)顯卡和顯存。理解不了這一點(diǎn)后面很多問(wèn)題都會(huì)卡住。1.2 為什么是LTDC而不是更快的FSMCDMA有些項(xiàng)目為了省事會(huì)用FSMCDMA去驅(qū)動(dòng)RGB接口屏思路是先配置好GPIO用FSMC的寫(xiě)時(shí)序把RGB像素?cái)?shù)據(jù)“打”到屏的數(shù)據(jù)線上。這種方式在低分辨率、低刷新率下能跑但并不是為RGB屏設(shè)計(jì)的。RGB屏需要連續(xù)、實(shí)時(shí)的像素時(shí)鐘和行場(chǎng)同步信號(hào)FSMC的時(shí)序本質(zhì)上是被動(dòng)的寫(xiě)操作靠DMA硬撐很容易出現(xiàn)刷新不完整、閃爍、撕裂。LTDC的優(yōu)勢(shì)在于它內(nèi)部有專(zhuān)門(mén)的時(shí)序生成器像素時(shí)鐘、同步信號(hào)、消隱區(qū)都是硬件自動(dòng)產(chǎn)生的MCU只需要保證顯存里的數(shù)據(jù)是正確且夠新的。4.3寸800x480的RGB屏在不含消隱的情況下像素?cái)?shù)就是800*480384000個(gè)。如果按60Hz刷新每秒至少要送2300萬(wàn)個(gè)像素。假如用RGB565格式每個(gè)像素2字節(jié)那么每秒顯存讀取量約46MB。純靠CPU或者FSMCDMA搬運(yùn)這個(gè)數(shù)據(jù)量一方面CPU被完全占滿另一方面時(shí)序抖動(dòng)會(huì)導(dǎo)致畫(huà)面肉眼可見(jiàn)地閃。LTDC的DMA通道會(huì)自己按行同步從顯存搬數(shù)據(jù)CPU幾乎不用干預(yù)這才是它存在的價(jià)值。2. RGB屏的時(shí)序拆解800x480不是真的只有800x4802.1 接口上到底需要接哪些信號(hào)線4.3寸RGB屏通常引腳很多核心信號(hào)包括R0-R7、G0-G7、B0-B724根數(shù)據(jù)線對(duì)應(yīng)RGB888如果只接高6位或者用RGB565格式可以只接16根高兩位接GND或電源。DOTCLK像素時(shí)鐘每個(gè)上升沿或下降沿送出一個(gè)像素。HSYNC行同步每掃完一行發(fā)出一個(gè)脈沖表示新一行開(kāi)始。VSYNC幀同步每掃完一幀發(fā)出一個(gè)脈沖表示新一幀開(kāi)始。DE數(shù)據(jù)使能高電平期間數(shù)據(jù)線上的RGB信號(hào)是有效像素低電平期間是消隱區(qū)。背光控制通常是LED_A/LED_K或者一個(gè)單獨(dú)的背光使能腳。很多人第一次接RGB屏容易犯一個(gè)錯(cuò)誤覺(jué)得DE信號(hào)沒(méi)用直接接高電平或者不管。實(shí)際上在LTDC配置Dither、消隱等場(chǎng)景下DE的狀態(tài)直接影響屏端對(duì)有效像素的解析。驅(qū)動(dòng)配置時(shí)務(wù)必保證DE正常連接。2.2 一行的時(shí)間要拆成四段LTDC產(chǎn)生HSYNC信號(hào)的時(shí)候并不是連續(xù)把800個(gè)有效像素送出去就完事。一行的完整時(shí)間段包含四部分HSYNC脈沖寬度HSAW、水平后肩HBP、有效顯示區(qū)AAW、水平前肩HFP。畫(huà)一條時(shí)間軸來(lái)理解同一行數(shù)據(jù)先發(fā)一個(gè)同步脈沖告訴屏幕“新行來(lái)了”然后等待一段后肩時(shí)間這段時(shí)間數(shù)據(jù)線上不送有效像素再然后送入真正的800個(gè)像素最后再等待一段前肩時(shí)間再進(jìn)入下一行。這個(gè)消隱機(jī)制是LCD行業(yè)沿用CRT時(shí)代的規(guī)范目的是給面板的信號(hào)處理留出穩(wěn)定時(shí)間。寄存器體現(xiàn)為L(zhǎng)TDC_SSCR設(shè)置行同步寬度和場(chǎng)同步寬度。LTDC_AWCR設(shè)置有效顯示區(qū)域的寬和高。LTDC_BPCR設(shè)置水平后肩和垂直后肩但要注意這里的值和“后肩”不完全等價(jià)它是后肩加同步寬度減1。LTDC_WCR設(shè)置水平前肩、垂直前肩也是前肩加同步寬度加后肩然后減1的關(guān)系。新手容易陷進(jìn)去死記公式我建議直接看屏的規(guī)格書(shū)里面有完整的時(shí)序圖和建議值。以常見(jiàn)的4.3寸800x480屏為例典型參數(shù)大致是HSAW40、HBP88、HFP40、VSAW10、VBP32、VFP13。具體每塊屏不一樣務(wù)必以你手上屏的規(guī)格書(shū)為準(zhǔn)。2.3 像素時(shí)鐘DOTCLK怎么算像素時(shí)鐘決定了LTDC向屏發(fā)送像素的速度。表面上看800x48060Hz只需要8004806023.04MHz但實(shí)際上要把消隱期的時(shí)間也算進(jìn)去。用上面那組典型參數(shù)估算水平總周期 HSAW HBP 有效寬度 HFP 40 88 800 40 968 垂直總周期 VSAW VBP 有效高度 VFP 10 32 480 13 535像素時(shí)鐘 水平總周期 * 垂直總周期 * 幀率 968 * 535 * 60 ≈ 31.08MHz取整后常用33.3MHz左右。F429內(nèi)部PLLSAI專(zhuān)門(mén)為L(zhǎng)TDC提供時(shí)鐘公式是DOTCLK PLLSAI_VCO / PLLSAI_R PLLSAI_VCO HSE / PLLSAI_M * PLLSAI_N假設(shè)板載HSE晶振是25MHz要得到33.33MHz可以配置M25、N200、R625MHz / 25 * 200 200MHz 200MHz / 6 33.33MHz這個(gè)值非常合適。需要注意PLLSAI的R分頻在F429上只能取2、4、6、8不是連續(xù)可調(diào)的所以算時(shí)鐘的時(shí)候要按這個(gè)約束來(lái)湊M/N/R而不是隨意改R。如果實(shí)在湊不到恰好值取一個(gè)接近且不超過(guò)屏規(guī)格書(shū)標(biāo)稱(chēng)最大值的頻率也可以因?yàn)槠翆?duì)DOTCLK有一定容忍范圍。3. 寄存器級(jí)LTDC初始化從RCC到Layer的完整鏈路3.1 時(shí)鐘使能GPIO、LTDC、DMA2D一個(gè)都不能少我建議把初始化拆成五步開(kāi)時(shí)鐘、配GPIO復(fù)用、配LTDC全局時(shí)序、配Layer、啟動(dòng)顯示。第一步先看RCC寄存器。在STM32F429上GPIO時(shí)鐘在RCC_AHB1ENR里使能LTDC時(shí)鐘在RCC_APB2ENR里使能DMA2D時(shí)鐘也在RCC_AHB1ENR里使能。這里最常見(jiàn)的坑是GPIO和LTDC的時(shí)鐘都開(kāi)了但忘了開(kāi)DMA2D時(shí)鐘后面調(diào)用DMA2D刷圖時(shí)寄存器寫(xiě)進(jìn)去完全沒(méi)反應(yīng)。寄存器庫(kù)驅(qū)動(dòng)里這三者必須明確分開(kāi)初始化不像HAL庫(kù)會(huì)自動(dòng)判斷。3.2 GPIO復(fù)用配置不是所有引腳都叫AF14LTDC的引腳復(fù)用大多數(shù)是AF14但并非全部。拿F429來(lái)說(shuō)部分?jǐn)?shù)據(jù)引腳是AF13或者其他AF編號(hào)。比如PA4LTDC_VSYNC是AF14PC6LTDC_HSYNC是AF14PE4LTDC_B0是AF14PF10LTDC_DE是AF14PH9LTDC_R3可能是AF14或AF9不同封裝版本有差異所以最穩(wěn)妥的辦法是翻開(kāi)對(duì)應(yīng)型號(hào)的數(shù)據(jù)手冊(cè)查AF映射表而不是照抄別人工程里的AF值。尤其是你自己畫(huà)的板子引腳分配如果和開(kāi)發(fā)板不一致復(fù)用功能號(hào)一錯(cuò)屏幕就完全不出信號(hào)。寄存器配置時(shí)先把對(duì)應(yīng)GPIO口的MODER設(shè)為復(fù)用模式然后在AFRL或者AFRH里填入正確的AF編號(hào)。例如GPIOG的PIN6作為L(zhǎng)TDC_R7如果AF是14需要配置GPIOG-AFRH的AFRH_MODE6為1111。注意每根引腳都設(shè)置完后還要確認(rèn)GPIO速度等級(jí)可以設(shè)高點(diǎn)比如OSPEEDR設(shè)為50MHz或100MHz避免信號(hào)邊沿太緩影響高速下的時(shí)序。3.3 LTDC全局寄存器GCR、SSCR、BPCR、AWCR、WCR的順序這里有個(gè)經(jīng)驗(yàn)規(guī)律先配置LTDC的同步參數(shù)再配置顯示有效區(qū)域然后配置后臺(tái)顏色最后使能LTDC。順序反了容易出奇怪現(xiàn)象。首先是LTDC_GCR。這個(gè)寄存器有幾個(gè)關(guān)鍵位LTDCENLTDC總使能初始化最后才置1。PCKEN像素時(shí)鐘輸出使能必須為1否則屏收不到DOTCLK。DEPOLDE極性一般0表示高有效。PCPOL像素時(shí)鐘極性需要配合屏的規(guī)格書(shū)有的屏要求DOTCLK下降沿采樣有的上升沿采樣。如果方向反了會(huì)看到畫(huà)面偏移或者輕微花影。HSPOL和VSPOL行場(chǎng)同步極性多數(shù)屏低有效配置成0。然后是時(shí)序相關(guān)寄存器LTDC_SSCR寫(xiě)入HSAW和VSAW注意要減1比如HSAW40寄存器寫(xiě)39。LTDC_BPCR寫(xiě)入AHBP和AVBP計(jì)算方式是水平后肩水平同步寬度-1垂直同理。LTDC_AWCR寫(xiě)入AAW和AAH代表有效顯示區(qū)域的寬高也都要減1所以800x480對(duì)應(yīng)799和479。LTDC_WCR寫(xiě)入AAHBP和AAVBP計(jì)算方式是水平前沿水平同步寬度水平后肩整體再減1表示一行總周期-1。這幾個(gè)寄存器的關(guān)系一句話總結(jié)就是SSCR定義脈沖BPCR定義后肩邊界AWCR定義有效區(qū)WCR定義總周期。只要這四者的邊界對(duì)齊LTDC的時(shí)序生成器就能穩(wěn)定工作。如果畫(huà)面出現(xiàn)整體偏移或者邊緣有一條豎線通常就是這些值加一減一弄錯(cuò)了。接著配置LTDC_BCCR也就是后臺(tái)顏色寄存器。它決定在沒(méi)有圖層覆蓋區(qū)域顯示的顏色例如RGB值為0x000000就是黑色。調(diào)試階段我習(xí)慣把后臺(tái)顏色設(shè)成一個(gè)亮色比如紅色0xFF0000如果屏幕能正常顯示純紅色背景說(shuō)明LTDC的同步和像素時(shí)鐘已經(jīng)通了問(wèn)題大概率出在圖層或者顯存上這個(gè)技巧能幫你快速定位。3.4 圖層Layer配置窗口位置、像素格式、顯存地址LTDC在F429上有兩個(gè)圖層Layer0和Layer1。驅(qū)動(dòng)初始化一般先把Layer0配置為主圖層。關(guān)鍵寄存器如下LTDC_LxCR圖層控制寄存器置1使能圖層。LTDC_LxWPR圖層窗口位置寄存器定義窗口左上角和右下角的坐標(biāo)單位是像素。比如全屏顯示就設(shè)左上角(0,0)右下角(799,479)。注意寄存器里存的是實(shí)際坐標(biāo)不是寬高。LTDC_LxPFCR像素格式寄存器。RGB565對(duì)應(yīng)0x02RGB888對(duì)應(yīng)0x03ARGB8888對(duì)應(yīng)0x00。這里必須和你使用的FrameBuffer里的數(shù)據(jù)格式嚴(yán)格一致。LTDC_LxCACR恒定Alpha值范圍0-255255表示完全不透明。LTDC_LxDCCR默認(rèn)顏色在圖層未覆蓋區(qū)域顯示的顏色。LTDC_LxBFCR混合因子配置決定圖層和后臺(tái)顏色如何混合。最簡(jiǎn)單粗暴的配置是恒定Alpha、完全不透明。LTDC_LxCFBAR幀緩沖基地址寄存器寫(xiě)入FrameBuffer的首地址。LTDC_LxCFBLR幀緩沖行長(zhǎng)度寄存器包含CFBLL和CFBP兩個(gè)字段。LTDC_LxCFBLNR幀緩沖行數(shù)寄存器寫(xiě)入窗口高度。這里再提一個(gè)最容易出問(wèn)題的寄存器LTDC_LxCFBLR。CFBLL字段表示一行的總字節(jié)數(shù)計(jì)算公式是“有效顯示寬度 * 每像素字節(jié)數(shù) 3”。為什么加3因?yàn)橛布驝FBLL按32字節(jié)對(duì)齊實(shí)際寄存器寫(xiě)入的最小步長(zhǎng)是4字節(jié)3能保證非對(duì)齊寬度也能覆蓋完整。CFBP字段表示行距Pitch是下一行起始地址相對(duì)當(dāng)前行偏移的字節(jié)數(shù)。全屏刷新時(shí)CFBP通常等于CFBLL如果只是從一張大圖上取一塊區(qū)域顯示CFBP就要填大圖的整行字節(jié)數(shù)。3.5 手工觸發(fā)重載為什么寫(xiě)了寄存器畫(huà)面不更新LTDC的很多圖層寄存器都是影子寄存器也就是說(shuō)你寫(xiě)入寄存器后在當(dāng)前幀沒(méi)有結(jié)束之前不會(huì)真正生效。要讓配置生效必須寫(xiě)LTDC_SRCR寄存器觸發(fā)重載。這個(gè)寄存器有兩個(gè)位IMR立即重載立即生效。VBR垂直消隱期重載等當(dāng)前幀掃描到垂直消隱區(qū)時(shí)才生效。初始化流程結(jié)束后我習(xí)慣同時(shí)置位IMR和VBR確保配置盡快生效。后續(xù)運(yùn)行時(shí)如果只改少量寄存器比如移動(dòng)窗口位置推薦只用VBR避免在屏正在掃描到一半時(shí)切換顯存地址否則容易在畫(huà)面中間出現(xiàn)一條撕裂橫線。圖層配置的完整順序大致是先關(guān)圖層LxCR清零- 配置窗口坐標(biāo)和像素格式 - 配置FrameBuffer地址、行長(zhǎng)度和行數(shù) - 配置常量Alpha和混合因子 - 使能圖層 - 觸發(fā)重載。調(diào)試初期不要搞花活老老實(shí)實(shí)按這個(gè)順序走。4. 幀緩沖和DMA2D顯存放哪決定了你的板子能不能跑起來(lái)4.1 內(nèi)部256KB SRAM根本放不下一整幀RGB565算一筆賬800x480分辨率RGB565格式每個(gè)像素2字節(jié)800 * 480 * 2 768000字節(jié) 750KBF429內(nèi)部SRAM總共約256KB192KB64KB放不下整幀。如果強(qiáng)行把分辨率降到320x240RGB565那就是3202402150KB勉強(qiáng)放下但留給堆棧和全局變量的空間就非常緊張了容易莫名死機(jī)。所以做4.3寸800x480RGB屏外部SDRAM幾乎是必須的。常見(jiàn)的做法是用FMC接口外掛一顆16位SDRAM比如W9825G6KH或者IS42S16400J容量至少4MB以上。顯存大一點(diǎn)還有個(gè)好處可以做多緩沖比如雙緩沖或者三緩沖這對(duì)消除撕裂非常有用。如果你的板子上沒(méi)有SDRAM那就只能退而求其次用一個(gè)內(nèi)部SRAM放不下就做局部刷新。但RGB屏的LTDC是按整個(gè)有效區(qū)域持續(xù)刷新的局部刷新只能靠改變Layer窗口位置實(shí)現(xiàn)顯示邏輯會(huì)非常別扭。4.2 顯存布局和LTDC_LxCFBLR的對(duì)應(yīng)關(guān)系顯存地址不是隨便給個(gè)數(shù)組名就完事。LTDC讀取FrameBuffer時(shí)會(huì)按你配置的行長(zhǎng)和行數(shù)逐行從基地址開(kāi)始讀取。如果顯存基地址是0xD0008000那么第0行起始地址 基地址 0第1行起始地址 基地址 CFBP第n行起始地址 基地址 n * CFBPCFBP如果配得比CFBLL大比如CFBLL填800*231603CFBP填2048那每一行末尾會(huì)跳過(guò)448字節(jié)的間隔。這在做圖像裁剪顯示時(shí)很有用比如從一張1024寬的大圖里截取中間800像素顯示。如果只是全屏刷新CFBP直接等于CFBLL即可千萬(wàn)別把CFBP設(shè)置成0否則所有行都會(huì)從同一個(gè)地址讀畫(huà)面就會(huì)變成一條條重復(fù)的紋理。還需要注意顯存地址的對(duì)齊。FrameBuffer基地址建議32字節(jié)對(duì)齊也就是地址的低5位為0。雖然LTDC硬件沒(méi)有強(qiáng)制所有地址都對(duì)到這個(gè)程度但不對(duì)齊的情況下和DMA2D配合時(shí)容易出問(wèn)題。4.3 DMA2D刷圖把CPU從逐像素搬運(yùn)里解放出來(lái)F429的DMA2D是一個(gè)圖形專(zhuān)用DMA支持純內(nèi)存到內(nèi)存拷貝、帶格式轉(zhuǎn)換的內(nèi)存到內(nèi)存拷貝、混合模式等。它的核心價(jià)值在于對(duì)FrameBuffer做填充或圖像拷貝CPU只負(fù)責(zé)下發(fā)幾條指令大塊數(shù)據(jù)搬運(yùn)全部由硬件完成。最簡(jiǎn)單的使用場(chǎng)景是清屏也就是把一個(gè)顏色值填充到整個(gè)FrameBuffer??梢耘銬MA2D為寄存器到內(nèi)存模式R2M把顏色值放到輸出寄存器然后設(shè)置輸出地址為FrameBuffer基地址輸出偏移設(shè)為0一次性寫(xiě)完整個(gè)區(qū)域。這樣清一幀750KB的RGB565數(shù)據(jù)DMA2D在幾十微秒內(nèi)就能完成而CPU逐點(diǎn)寫(xiě)至少需要幾毫秒差別非常明顯。另一個(gè)常見(jiàn)場(chǎng)景是圖片顯示比如把一張ARGB8888位圖轉(zhuǎn)換成RGB565格式輸出到FrameBuffer。配置DMA2D為M2M_PFC模式前景地址指向原始ARGB8888圖片前景像素格式配成ARGB8888輸出地址指向FrameBuffer對(duì)應(yīng)位置輸出像素格式配成RGB565然后啟動(dòng)DMA2D。轉(zhuǎn)換由硬件完成速度比CPU逐像素轉(zhuǎn)換快很多。需要注意原始圖片的每一行字節(jié)數(shù)可能不是4字節(jié)對(duì)齊這個(gè)可以在前景偏移寄存器里配置保證圖片邊界不對(duì)齊時(shí)也能正確讀取。我第一次用DMA2D也踩過(guò)一次坑發(fā)完啟動(dòng)指令后立刻去讀FrameBuffer發(fā)現(xiàn)數(shù)據(jù)還沒(méi)寫(xiě)完。DMA2D是異步的開(kāi)啟傳輸后必須等標(biāo)志位比如TCIF置位或者用中斷告知傳輸完成再去做后續(xù)操作。否則你讀到的是半個(gè)舊數(shù)據(jù)半個(gè)新數(shù)據(jù)的混合體顯示出來(lái)就是撕裂的瞬間。5. RGB屏上顯示中文從字模到自繪UI的最小實(shí)現(xiàn)5.1 字模是怎么取出來(lái)的RGB屏上要顯示中文最直接的方法是用點(diǎn)陣字模。常見(jiàn)的是16x16點(diǎn)陣一個(gè)漢字占16行每行16像素按單色編碼時(shí)每行2字節(jié)總共32字節(jié)。更大字號(hào)就是24x24或者32x32。取模工具我用過(guò)不少PCtoLCD2002比較直觀。它支持橫向取模、縱向取模、字節(jié)正序、字節(jié)反序等多種選項(xiàng)。最常用的模式是橫向取模字節(jié)高位在前從左到右每8個(gè)像素湊一個(gè)字節(jié)字節(jié)的高位對(duì)應(yīng)左邊的像素。這樣寫(xiě)顯示函數(shù)時(shí)檢查bit7到bit0的順序最自然。取出來(lái)的字模數(shù)據(jù)結(jié)構(gòu)一般是一個(gè)常量數(shù)組。比如漢字“電”的16x16字模可以用const unsigned char font_table[] {0x00, 0x00, ...}的形式。如果你做了GB2312編碼查表可以通過(guò)漢字編碼索引到字模數(shù)組的偏移地址。對(duì)于項(xiàng)目里只用到固定幾個(gè)漢字的情況也可以直接把所有漢字的字模拼進(jìn)一個(gè)大數(shù)組自己維護(hù)一個(gè)映射表。5.2 一個(gè)能跑的16x16漢字顯示函數(shù)假設(shè)FrameBuffer是RGB565格式我們配置LTDC窗口為全屏800x480顯存首地址為buf_base。要顯示一個(gè)漢字核心思路是先計(jì)算漢字在屏上的起始坐標(biāo)然后逐行逐像素讀取字模數(shù)據(jù)如果該位為1就把FrameBuffer對(duì)應(yīng)位置的像素寫(xiě)成前景色如果為0可以寫(xiě)背景色或者保持不動(dòng)形成透明效果。一個(gè)簡(jiǎn)單的畫(huà)點(diǎn)函數(shù)如下void LCD_DrawPoint(uint16_t x, uint16_t y, uint16_t color) { if (x 800 || y 480) return; *(volatile uint16_t *)(buf_base y * 800 x) color; }這里直接用y*800加上x(chóng)算出RGB565在顯存中的偏移除以2的運(yùn)算編譯器會(huì)優(yōu)化不用擔(dān)心效率。屏寬我寫(xiě)死了800做通用封裝時(shí)應(yīng)當(dāng)把這個(gè)值作為參數(shù)或者宏定義避免改屏之后到處找。畫(huà)漢字的函數(shù)void LCD_ShowChar16(uint16_t x, uint16_t y, uint16_t color, uint8_t *font_data) { uint8_t byte; for (uint8_t row 0; row 16; row) { byte font_data[row * 2]; for (uint8_t col 0; col 8; col) { if (byte (0x80 col)) { LCD_DrawPoint(x col, y row, color); } } byte font_data[row * 2 1]; for (uint8_t col 0; col 8; col) { if (byte (0x80 col)) { LCD_DrawPoint(x 8 col, y row, color); } } } }這里有兩個(gè)容易弄錯(cuò)的地方。第一如果你在取模工具里選擇了“縱向取?!蹦敲瓷厦娴淖x取順序就不對(duì)需要改成逐列讀取。第二如果取模時(shí)選了“字節(jié)反序”判斷位就應(yīng)該是byte (1 col)。所以拿到字模數(shù)組之后必須先確認(rèn)取模設(shè)置不要想當(dāng)然。我曾經(jīng)因?yàn)槟缅e(cuò)了字模方向顯示出來(lái)的漢字整體鏡像排查了半天才發(fā)現(xiàn)是取模方向的問(wèn)題。5.3 提升顯示效果透明背景和反色直接跳過(guò)背景像素就能實(shí)現(xiàn)透明文字效果。在屏幕上疊加菜單標(biāo)題時(shí)透明文字看起來(lái)比帶底色塊的方式舒服很多。反色顯示則適合做菜單選中高亮讀一下目標(biāo)位置的當(dāng)前像素顏色取反后再寫(xiě)回去。RGB565的取反不是簡(jiǎn)單位翻轉(zhuǎn)所有16位那樣顏色會(huì)變得非常奇怪正確做法是把RGB分量分別取反再重新組裝。函數(shù)可以這樣uint16_t LCD_GetPoint(uint16_t x, uint16_t y) { return *(volatile uint16_t *)(buf_base y * 800 x); } void LCD_InvertRect(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { for (uint16_t y y0; y y1; y) { for (uint16_t x x0; x x1; x) { uint16_t c LCD_GetPoint(x, y); uint16_t r 31 - ((c 11) 0x1F); uint16_t g 63 - ((c 5) 0x3F); uint16_t b 31 - (c 0x1F); LCD_DrawPoint(x, y, (r 11) | (g 5) | b); } } }如果覺(jué)得手動(dòng)取反太慢也可以借助LTDC的混合功能做半透明菜單條但那就涉及Layer1和Layer0的混合系數(shù)邏輯更復(fù)雜。調(diào)試初期先把手動(dòng)繪制函數(shù)跑通再考慮硬件混合更穩(wěn)妥。6. 白屏、花屏、撕裂LTDC調(diào)試踩坑記錄6.1 白屏排查鏈路從背光到LTDC總使能白屏的第一反應(yīng)不要直接去查L(zhǎng)TDC先確認(rèn)背光有沒(méi)有亮。很多RGB屏的背光需要MCU給一個(gè)高電平或者PWM信號(hào)如果背光沒(méi)開(kāi)屏幕就是灰白色或者黑色什么都看不見(jiàn)。背光亮了再往LTDC方向排查。背光正常但白屏按優(yōu)先級(jí)檢查以下幾處RCC_APB2ENR里的LTDC時(shí)鐘是否打開(kāi)沒(méi)有時(shí)鐘所有LTDC寄存器寫(xiě)入無(wú)效。GPIO復(fù)用是否配好尤其是DOTCLK引腳如果DOTCLK沒(méi)輸出屏就不知道何時(shí)采樣數(shù)據(jù)。LTDC_GCR里的PCKEN是否置1這個(gè)位控制像素時(shí)鐘實(shí)際輸出。LTDC_GCR里的LTDCEN是否置1總使能沒(méi)開(kāi)LTDC不工作。LTDC_SRCR是否觸發(fā)了重載影子寄存器不重載配置不會(huì)生效。Layer是否使能LxCR0時(shí)圖層全部不用屏幕顯示后臺(tái)顏色。我把這個(gè)順序?qū)懰莱勺约旱呐挪榱鞒逃龅桨灼辆褪菑南峦弦粭l條過(guò)而不是東查一下西查一下。6.2 花屏和顏色異常極性和行場(chǎng)參數(shù)花屏的表現(xiàn)有很多種。如果是整屏均勻地出現(xiàn)彩色噪點(diǎn)優(yōu)先懷疑像素時(shí)鐘采樣極性反了。試試把GCR里的PCPOL位翻轉(zhuǎn)很多屏是上升沿采樣如果配成了下降沿就會(huì)出現(xiàn)顏色亂跳的現(xiàn)象。如果是畫(huà)面整體偏移出現(xiàn)黑色豎條或者斜紋那就檢查SSCR、BPCR、AWCR、WCR這幾個(gè)寄存器的加減一關(guān)系以及行場(chǎng)同步極性HSPOL、VSPOL。顏色偏色則要檢查L(zhǎng)TDC_LxPFCR里的像素格式和實(shí)際寫(xiě)入FrameBuffer的數(shù)據(jù)格式。一個(gè)常見(jiàn)誤解LTDC配置成RGB888模式但FrameBuffer里卻放的是RGB565數(shù)據(jù)這樣LTDC讀數(shù)據(jù)時(shí)會(huì)按3字節(jié)一個(gè)像素解析顯示出來(lái)顏色會(huì)完全錯(cuò)亂且畫(huà)面有縱向拉伸。反過(guò)來(lái)配置成RGB565但FrameBuffer里是ARGB8888數(shù)據(jù)顏色會(huì)偏且周?chē)霈F(xiàn)奇怪的邊界。確保這兩者一致比其他任何調(diào)試都有效。還有一個(gè)容易忽略的點(diǎn)SDRAM的初始化時(shí)序如果不對(duì)FrameBuffer里的數(shù)據(jù)讀取會(huì)不穩(wěn)定表現(xiàn)為某些區(qū)域不定期花屏。這種花屏不是固定位置的掃描幾次有時(shí)正常有時(shí)壞多半是SDRAM時(shí)序配置偏緊或者刷新率不夠??梢試L試把SDRAM的刷新周期調(diào)長(zhǎng)一點(diǎn)或者降低LTDC像素時(shí)鐘看看現(xiàn)象是否減輕。6.3 畫(huà)面撕裂為什么用VBR重載而不是IMR撕裂現(xiàn)象是畫(huà)面更新過(guò)程中屏上半部分已經(jīng)是新一幀內(nèi)容下半部分還是舊一幀內(nèi)容中間有一條明顯的橫線。根因是Layer的FrameBuffer地址在屏掃描到一半時(shí)被切換了。LTDC正在從舊顯存地址讀行數(shù)據(jù)你突然把地址改成了新顯存地址那屏就會(huì)在一幀內(nèi)拼出兩個(gè)不同幀的內(nèi)容。解法有幾個(gè)層次最基礎(chǔ)的所有影響圖層配置的寄存器更新都用VBR垂直消隱重載讓LTDC在掃描完一幀后的消隱期才切換顯存地址。更穩(wěn)妥的用雙緩沖。一幀顯示期間你往另一塊FrameBuffer里繪制內(nèi)容等垂直消隱到臨時(shí)切換顯存地址這樣徹底避免在繪制中間被LTDC讀到不完整數(shù)據(jù)。進(jìn)階的利用LTDC行中斷LIPCR設(shè)置一個(gè)在消隱區(qū)前或者消隱期內(nèi)的行號(hào)觸發(fā)中斷后執(zhí)行顯存地址切換。F429有LTDC_LIPCR、LTDC_LISR等寄存器可按行觸發(fā)中斷。我實(shí)際使用中雙緩沖配合VBR重載效果最好。程序里維護(hù)兩個(gè)顯存地址一個(gè)當(dāng)前顯示一個(gè)正在繪制VSYNC中斷到來(lái)時(shí)交換兩個(gè)地址并觸發(fā)VBR重載。這個(gè)方案雖然占用的SDRAM內(nèi)存翻倍但省心畫(huà)面干凈利落。6.4 關(guān)于FSMCDMA驅(qū)動(dòng)RGB屏的一個(gè)補(bǔ)充熱詞里有人提到FSMCDMA驅(qū)動(dòng)LCD的同步問(wèn)題。我必須說(shuō)如果你只是想把一塊RGB屏點(diǎn)亮FSMCDMA確實(shí)是可以跑的但那是用非標(biāo)準(zhǔn)的方式去模擬RGB傳輸任何時(shí)序毛刺都會(huì)直接反映成畫(huà)面異常。LTDC方案下這些同步問(wèn)題由硬件時(shí)序生成器解決你反而只需要關(guān)心顯存地址的切換時(shí)機(jī)。這兩者的調(diào)試思路完全不同如果你發(fā)現(xiàn)FSMCDMA方案同步問(wèn)題怎么都調(diào)不好考慮轉(zhuǎn)LTDC可能是更高效的選擇。結(jié)尾聊點(diǎn)個(gè)人體會(huì)這套LTDC驅(qū)動(dòng)前前后后我移植過(guò)好幾個(gè)項(xiàng)目最深的感受是寄存器庫(kù)驅(qū)動(dòng)真正難的不是某個(gè)寄存器不會(huì)配而是它和以前“寫(xiě)命令控制屏”的思維模式完全不一樣。一旦接受“MCU即顯卡顯存即天下”這個(gè)設(shè)定所有寄存器之間的關(guān)系就都順了。調(diào)試時(shí)建議把手上的屏的規(guī)格書(shū)完整讀一遍尤其是時(shí)序參數(shù)表不要靠猜。遇到白屏就按第6節(jié)的鏈路逐條查遇到撕裂就上雙緩沖加VBR這兩招能解決絕大部分疑難問(wèn)題。另外寄存器庫(kù)驅(qū)動(dòng)有個(gè)天然優(yōu)勢(shì)不受HAL庫(kù)版本升級(jí)影響代碼貼到工程里就能用出問(wèn)題也好跟蹤到底層。如果你正在做F429的RGB屏項(xiàng)目希望這篇能幫你少走幾天的彎路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲熟女中文字幕在线| 懂色综合久久久| 78操B| 欧美色三级片91| 一区二区三区四区免费视频| 人人操 欧美| 青青草一区二区三区四| 东北女人| 丝袜av一区二区三区| 久久精品人体| 欧美日韩99精品麻豆传媒| 激情小说亚洲| 97在线青| 97频视在线| 嗯嗯嗯啊啊啊操的我好爽 | 久久精品黄色| 成人久久久精品| 日韩精品人妻中文字幕有码午| 九九99精品视频在线观看| 超碰免费人妻人人| 91丨九色丨国产丨人妻在线 | 99自拍视频| 久久婷婷五月综合| 爱爱动态120秒| 久久国产三区| 中文在线久久字幕| 偷拍片久久| 久噜噜| 亚洲国产亚洲天堂| 日天天九九天堂666| 久久久久9999| 超碰97欧美日韩| 一区=区三区视频| 精品无码久久久久久国产浪潮| 欧美亚洲韩国视频十五区 | 亚洲无码国产探花在线观看| 激情综合五月天| 伊香蕉综合久久久久久久噜噜噜| 十八禁视频一区二区| 久草成人| 免费视频97| 久久精品中文字幕无码l| 久草热制服丝袜在线观看 | 精品高潮| 日本中文字幕一区| 丰满人妻-区二区三区| 激情色图| 欧美午夜视频精品久久| 搡老女人老妇女老妇老熟女怎么读| 青青操综合网| 亚洲熟女偷拍在线观看| 国产一区二区精品久久久不卡蜜臀 | 欧美综合97www| 色综合99999| 亚洲在线a| 日韩不卡a级视频专区| 91天天日| 久久久久久久9| 婷婷中文网| 欧美精品另类人妖xxxx| 四虎av在线| 日韩精品1区2区中文字幕| 1024亚洲中文字幕久在线看片你懂的| 色原狠狠天天天| 久久亚洲AV无码专区国产精品| 五月天丁香欧洲日韩| 青青草一区二区高清无码视频| 成人麻豆av电影网站| 色呦呦、国产精品| 91少妇人妻| 91精品伊人久久久大香线蕉91| 美女淫穴| 91综合网站| 亚洲乱熟女一区二区三区大香蕉| 亚洲综合草草| 五月丁香狠狠爱| 中文字幕一区二区三区人妻不卡| 无套内射人妻在线播放| 风月影院男女十八禁| 小日子操bb在线看| 欧美一二级| 嫖老熟女A片一二三区| 综合久欧洲| 久操com| 中文欧丝袜诱惑| 亚洲AV无码成人精品久久| 中文字幕免费在线观看| 天堂种子在线www网资源| 亚洲人精品午夜不卡| 国产精品熟女乱伦| 国产免费黄色一级大片| 国产情色在线| 蜜桃精品一区二区三区ww| 国产成人拍国产亚洲精品| 99热 按摩 日韩| www…国产操逼| 色欲天天综合久久久无码网中文| 欧美性Fer办公室秘书| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 亚欧性爱在线无码| 久久久国产av美女私房| 精品国产乱码久久久久久久| 国产一区麻豆免费观看| 青青草中文-久久青草精品一区二区三| 亚洲综合五月天| 久久国产热视频97电影| 婷婷伊人五月| 成人怡红院| 91精品人妻五十路| 天美传媒AV国产在线| 天天干一干| 中文字幕成人理论在线| 操逼大黄片| 国产美女高潮| 97超碰超碰| 欧美色九九| 亚洲涩图欧美| 人妻丰满熟妇av无码区蜜桃| 亚洲双插| 欧美日韩性爱无码| 欧美人人AAA| 久久高清欧美国产| 看免费的黄片| 日韩免费av片高清无码| 亚洲 小说 欧美 激情 另类| 摸奶性爱视频网站在线免费播放| 中文字幕五月婷婷免费| 国产一区二区精品久久99| 99久久久无码精品国产人| 色综合99999| 国产亚洲国产超碰| 九九AV| 综合操逼| 岛国视频免费在线观看| 婷婷中文网| 国产91会所女技师在线观看| 极品粉嫩一区二区| 精品三级在线专区| 狠狠躁天天躁日日躁97| 久久精品免费| 日本久久网| 久久久555| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 日韩小电影| 免费作爱一级视频| 东北女人的毛片| 女生91网站| 青青操狠狠撩| 动漫av中文| 欧美A片中文字幕| 99热99在线| 精品久久久不卡一区二区| 欧美色图 色综合图| 国产亚洲日本精品在线| 成人性爱电影一区二区| 久久精品91| 国产精品原创巨作?v网站| 爽爽淫人网| 乱伦图av| 国产成人主播| 91伊人影视综合| 欧美色图色综合| 亚洲人在线| 大二网站亚洲| 夜夜综合| 花花AV导航| 91美女高潮| 国产不卡片| 真实高潮91| 插欧洲美女欧美精品| 色色97爱| 超碰97在线中文| 人人爱夜夜爱| 亚洲人妻在线一区| 欲香欲色天天天综合和网| 91免费看一区二区三区| 综合网久久| 天天综合网在线91| 天天综合网一91网| 麻豆性爱视频在线播放| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 91丨九色丨东北熟女| 久久精品女同亚洲女同13| 99精品视频在线观看免费| 五月丁香六月婷| 九九久久玖玖| 日韩啪啪啪视频| 黄色人人| 精品玖九九久| 国产青一二三| 免费?级毛片无码?∨蜜芽试看| 嗯啊免费视频| 国产亚洲美日韩Aⅴ中文字幕无码成人| 国产污视频麻豆传媒一区二区 | 日韩中文9| 日本午夜福利影院| 女生91网站| 啊啊啊好舒服好爽啊啊啊视频| 不卡中文字幕aⅴ在线| 亚洲情色一区三区| 99热婷婷| 午夜性生活av免费在线看| 97大色网| 丁香六月婷婷| 亚洲国产精品成人无码久久久| 夜夜嗨一区二区三区直播内容| 久久视网78| 久久直播国产| 日韩精品一区二区高清| 四虎精品永久在线观看| 欧洲中文字幕| 91oumei| 亚洲精品三区在线观看| 97视频网站| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 91天天综合网| 特色a在线上| 91艹| 日韩色女精品| 9超碰免费| 亚洲国产第一页综合视频| 人人看欧美性爱| 天天干18禁| 噜噜噜噜天天狠狠| 日日AAvv| 99re28在线观看| 激情文学小说一区二区 | 欧洲与亚洲欧美精品中文字幕| 亚洲欧洲偷拍一区| 麻豆国产尤物AV| h在线看免费版在线看| 亚洲色图亚洲无码强奸乱伦| 国模不卡| 激情接吻视频久久久久久| 免费作爱一级视频| 女人双腿搬开让男人桶| 亚卅熟女乱色| 5月婷婷6月六月丁香| 牛牛aV| 国产精品成人蜜臀AV在线| 在线欧美69V免费观看视频| 摸奶性爱视频网站在线免费播放| 免费观看性欧美一级| 国产成人久久精品蜜臀| 四虎午夜影院| 午夜男人一级A片7777| 亚洲五月丁香花狠狠干一区二区三区 | 欧洲色| 久热大香蕉| 国产精品久久久三级无码| 国产极品一区二区三区三州| 日本三级韩三级99久久| 丝袜av一区二区三区| 女人香蕉久久毛毛片精品| 国内外内射高清视频| 国产A v无码专区| 另类小说五月天| 亚洲第91页| 超碰人妻久久| 日韩激情中文字幕有码| 伊人97色天使| 日日躁夜夜躁狠狠躁超爽| 欧美性生活免费网| 欧美亚洲特P| 福利在线视频一区二区| 麻豆天美AV传媒第一页| 日本操逼视频免费| 天天色综亚洲91污| 少妇贴图| www.色婷婷色综合| 在现视频女上位好爽| 五月婷婷激情| 黄色AV影视| 偷窥自拍A片| 探花一区在线| 麻豆国产视频精品观看| 久久侵犯人妻爽爽爽| 丝袜狠狠草尤物人妻av91| 青娱乐大香蕉| 日韩人妻精品| 国产成人久久精品蜜臀| 国产精品欧美日韩久久| 久久亚洲一区女同性恋中文字幕 | 欧美日韩另类激情图片| 美国日韩黄色片| 男生女生啊啊啊啊| 日日干天天干夜夜爽| 丁香五月天堂| 人人妻人人爽一区二区三区| 亚洲色图欧美视频| 人妻丝袜一区二区三区在线| 欧美在线电影| 狠狠色婷婷777| 色哟哟1区2区| 最新国产精品久久精品| 青青草狠狠撸| 色噜噜精品一区二区三| 成人久久久精品| 欧美另类精品xxxx| 99热色这里只有精品| 色综合20p| 婷婷五月色| 日本日皮视频逼| 欧美性爱97超碰| 三级三久久线久久99久目本WW| 97超碰精品成| 婷色五月| 国产无吗在线播放| 精品人妻中文字幕4399| 人妻嗯啊啊在线播放| 另类图片综合| 99在线视频播放| 麻豆啪啪啪视频| 全免费a敌肛交毛片免费| 毛片一区二区| 风骚少妇视频中文字幕| 精品久久視頻在线| 911av网站免费观看| 人人妻人人操人人乐| 亚洲天堂另类| 国产白嫩精品久久| 怡红院一区二区熟女人妻| 欧美日韩国产色五月综合在线| 五月天开心网| 日韩字幕一区| 日本人妻A片成人免费看片| 五月天伊人| 中字一区| 91新在线欧美| 蜜臀在线免费观看在线免费观看| 国产丝袜欧美在线视频| 欧美亚洲AN| 亚洲成人在线高清| 色图综合网| 久久男人| 91亚洲黄色网| 久久久久熟女| 浓厚中出中文字幕在线| 特级大荫道BBwBBwBBW| 成人网站 免费观看| 亚洲av国产av综合av卡| 久草成人| 欧美姓爱综合网| 好一吊区二区| 不卡超碰护士AV在线免费播放| 激情综合婷婷| 人妻AV在线| 嗯嗯啊啊操我| 另类图片五月| 成人怡红院| 91网站18在线| 少妇高潮99p| 婷婷色一区| 亚洲美乱| 国产嫩草精品A88AV在线| 亚洲日韩肥臀视频在线观看| 欧美熟妇乱码在线一区| 色婷婷电影网| 99.色网| 熟女在线视频| 人妻内射一区二区在线视频| 人妻 欧美亚洲| 先锋女优在线观看视频| 美女好片色日本| 国产传媒av天美传媒在线| 情色大香蕉| 九九九色| 永久免费发布性爱网| 啪啪综合网| 亚洲最大的黄色电影网站。 | 亚洲熟妇白浆无码AV| 大胆91| 一区二区三区蜜桃成人撸久久东京热| 亚洲色图自拍| 久久久久亚洲熟妇熟女| 美女尤物人人操| 日韩精品一区二区三区四虎影视| 超碰激情808| 亚洲双插| 日本欧美一区二区三区免费| 99青青草国产视频| 日本不卡二区| 伊人久久亚洲中文字幕| 欧美色综合网| 亚洲中文字幕精品久久久久久直播| 亚洲男人天堂Av| 国产国产亚洲一二三久久| 啊啊啊好湿久久| 精品白丝一区| 亚洲精品白浆高清久久久久久 | 国产狂喷潮在线精品| 日本好吊色视频| 欧美九一精品久久久熟妇| 国产日本顶级一区二区三区| 天天爽夜夜爽夜夜爽精| 极品AV网站在线观看| 国产AV色黄看到爽| 精品人妻一区春色| 大香蕉综合| www.人人摸在线视频| 长长久久88视频| 99热这里只有精品18| 九九九九九九九精品视频| 78超碰| 91久久久视| 国产美女mm131爽爽爽爽| 青青草导航在线视频| 日韩熟妇二区| 日韩亚洲中文有码视频| 日日摸日日碰夜夜爽视频| 一区二区三区日韩欧美| 国产精品成人蜜臀AV在线| 91网站18禁| 啊啊啊啊啊好大好舒服想要| 久久东京国产精品视频| 天天做天天爱天天爽AV| 免费福利视频中文字幕| 校园春色综合| 国产成人精品日本亚洲语言| 97在线观看| 亚洲国产中文字幕| 丝袜综合| 激情文学网伊人| 国产毛片毛片4p懂色| 国产农村妇女精品1区二区| 999精品国产高清一区二区| 啊啊啊在线观看免费视频| 91成人精品在线播放| 青青草好吊色| 亚州高清av| 99热婷婷| 18禁美女裸体无遮挡啪啪| 婷婷精品久久av影视| 久久9精品视频| 日本中文字幕在线视频| 欧美另类综合久久| 日韩字幕一区| 99国产精品| 91n免费处女| 欧美韩国你懂得在线 | 激情五月天网站| 国产精品香蕉热久久新品| 亚洲成人精品在线一区| 五月婷亚洲精品天堂| 国产蜜臀精品一区二区尤物| 日1区2区3区2020| 日本高清一本二本免费不卡| 香蕉视频精品亚洲一区二区三区在线播| 五月天婷婷色| 男女性扦B| 欧美最婬乱婬爆婬牲视频| 先锋精品av色鲁| 新怡红院| 91精品人妻偷情| 色九九九九久| 人妻天堂综合网| 日韩黄色av中文字幕| 欧美激情一| a片亚洲一本通视频| 蜜臀精品1区2区| 激情文学小说一区二区| 强被迫伦姧在线观看无码网站| 日韩丰满熟妇| 伊人精品视频| 国产91会所女技师在线观看| 色墦五月丁香| 日韩欧美蜜桃精品久久中文字幕久久 | 国产偷拍网站| 国产熟女少妇一区| 欧美乱伦专区| 99热这里| 日韩亚洲欧美中文字幕| 丰满少妇人妻久久久久久| 精品国产乱码久久久影院| 亚洲囯产精品女人久久久| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 精品国产自在在线99| 加勒比色99999| 五月天丁香欧洲日韩| 少妇的嫩逼图片| 国产丝袜视频| 丁香九月 婷婷| 91天天爱| 在线播放成人网站| 色欲av一区二区三区蜜芽| AV丝袜少妇| 欧美性爱在线无码| 日婷婷| 欧美激情色婷婷花野真衣一区二区| 国产91乱伦| 天天爱天天操| 国产精品 午夜福利| 国产92麻豆天美精品色欲5| 日韩精品一二三| 啊啊啊啊啊在线视频| HEYZO高无码国产精品227| 青青在线视频免费| 中文字幕第7页| 午夜男人天堂| 日韩一区二区三区四区五区| 内射夫妻三片| 久久久月天| 欧亚日韩三区| 久久久婷| 五月天成人综合| 国产1769在线| 亚洲图片色图欧美另类| 久久日韩肥臀| 一二三区视频在线观看| 国产亚热在线久久| 天天综合香 ld视频| 九九热在线视频| 最近2019中文字幕国语免费版 | 超碰免费人妻人人| 熟妇人妻精品一区二区| 久久久日本电影| 黄色片G G G| 久久m| 韩日精品福利视频一区不卡在线免| 色五91| 国产欧美第五页| 黄色AV影视| 丁香六月啪啪| 9久精品| 九九久久九九久久| 97色97好| 激情终合网| 日韩中文字幕宗合在线| 亚洲色图第一页| 超碰97在线中文| 狠狠干2020| 久久岛国| 日本精品五区| 少妇一级婬片免费放一级a性色.| 亚洲国产成人精品999| 手机看片91人妻| 久久久亚洲高清不打码| 殴美大黄片| 午夜福利久久久噜久噜久久综合 | 国内毛片四区| 九九九精品美女| 自拍偷拍草一草| 超碰99在线观看| 女人天堂AV五区在线| 超碰综合色| 久久久久久久| 中国乱伦一区二区| 日本特黄f c2| 97超色| 一个人免费HD91视频| 日韩精品在线观看观看| 丁香婷婷啪啪| 国产熟女自拍| 97亚洲中文| 亚洲无码AV九九九| 亚洲国产一区二区三区在线| 97天天在线| 麻豆久久一区二区三区| 在线强奷到舒服的无码视频| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚 | WWW4虎| 亚洲 欧美 精品专区 极品| 日韩簧片免费看| 久久伊人大香蕉| 超碰一区二区| 午夜乱轮操逼视频免费看| 日韩激情啪啪| 亚洲中文字幕日产无码久久| 一本色道久久综合亚洲二区三区| 一级片视频啪啪| 99热在线播放| 天天在线91| 久久精品中文字幕无码l| 少妇被玩视频二三区| 日韩无码一级黄色av片| 乱人伦 国语对白:视频直接看| 亚洲第一男人天堂| 五月综合色| 欧美亚洲首页| 婷婷色一区| 综合影院永久入口国产| 久久av色| 小日子操bb在线看| 久久夜夜夜| 99综合| 精品对白久久不卡| 午夜精品一区二区三区三上悠亚| 另类欧美色| 亚洲精品久| 国产精品不卡av免费在线观看| 国产成人亚洲精品自产在线| 黄色片一区二区三区四区五区| 国产又大又粗又长视频在线| 少妇无码av专区线| 亚洲人妻日日日| 国产欧美日韩女同性恋ww喷水精品| 男人的天堂va| 久久久久久久久久久久黄色 | 亚洲宗合电影| 男人天堂网址| 殴美日韩m| 在线毛片片免费观看| 青娱乐av在线| 日本东京热久久久电影| 欧美大片一区二区三区 | 久9综合在线| 伊人AAA| 国产成人久久精品蜜臀| 日本美女性生活久久久久久久| 无码免费在线观看黄色片| 亚洲丝袜色| 97爱综合| 久久有码视频| 欧美爆操91| 中文字幕 国产 精品| 国产91美女视频| 在线 亚洲 网爆 自拍| av无码av无码专区| 亚洲欧美色图片| 曰韩香蕉97| 资源在线观一 二| 日韩精品在线放| 美女91av| 亚洲 欧美 另类 日韩 人妻一区| 欧美日韩中文亚洲v在线综合| 欧美色网络| 丝袜无码a片| 五月婷婷AV| 国产亚洲欧美每日在线| 精品一级| 91综合天天| 综合亚洲欧美| 91国产丝袜白虎| 日本黄色天堂| 色综合久久夜色精品国产天堂| 欧日韩不卡视.频| 黄色在线网站| 欧美爱三级日韩久久| 操人妻视频| 97亚洲自在精品在线观看| 无码视频一区二区| 手机av天堂久久久久| 看一级黄色视频| 亚洲色图欧美色图日韩色图| 无码区蜜乳| 精品人妻中文字幕4399| 亚洲蜜乳av| 欧美日韩亚洲一区二区在线观看| 老熟女乱伦一区| 插入逼91| 26uuu性物| 色网在线视频观看免费| 最新三级网址| 亚洲中文字幕日产无码久久| 国产精品 午夜福利| 亚洲无码日韩电影| 亚洲 暴爽 AV人人爽日日碰| 在线97在线| 精品91日日夜夜超清资源| 亚洲av淫乱| 天堂69亚洲精品中文字| 激激五月| 91操熟女视频 | 黄色大片视频在线免费看| 国产精品交换一区二区| 欧美激情专区| 99re只有精品| 亚洲日韩美女中文字幕乱| 久久是精品| 丁香五月激情啪啪| 91狠狠综合| 超碰人妻中文在线| 日本肉体xxxx裸交| 性91| 五月天色电影| 精品黑人一区二区| 亚州一区二区| 国产偷人妻精品一区二区在线| 伊人久久大香线蕉无码| 东京热,男人的天堂| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 亚洲日韩久久精品一区| 国产在线精品偷| 日韩亚洲精品一区二区| 亚洲高清少妇| 女人的久久久| 国产欧美一级在线观看| 60秒不遮不挡| 超碰久久草| 丁香六月天| 亚洲欧洲综合av在线| 69久久| 亚洲 se图 欧美电影| 熟女六十路| 久久国产AⅤ| 天天综合~91| 久久一二三四五六七八九区区| 99久久精品国产高潮| 亚洲一区二区三区春色| 96精品一区| 亚洲天堂另类小说男人| www色婷婷| 国产精品一区二区校花| 超碰97欧美| 美女上床网站| 爱爱久久| 青青草在线视频人人想人人上 | 日韩无码人妻中字久久三区四区| 精产国品一区二三产品| 亚洲精品男人的天堂| 色色色色日本| 亚洲黄色视频在线观看视频| 五十路三区在线| 国产熟女自拍| 另类av综合久久| 欧美日韩夜夜| 99免费视频| 久久九色| 欧美日韩操逼嗦吊| 老司机深夜影院18未满| 午夜福利无毒不卡| 国产午夜在线观看| 老熟女网站| 男同专区一区二区三区在线| 亚洲图片偷拍欧美| 久久九操在线观看| 中文字幕一区二区三四五区日日骚| 麻豆视频test| 色噜噜综合在线| 五月天激情小说网| 免费视频a级毛片免费视频| 老司机射| 免费强奸av| 日本三级网页| 欧美国产伊人久久久久| 伊人影院综合是一个与深夜成人在线| 国产婷婷综合在线观看| 日韩性爱一级片| 久久久性| 少妇高潮流水av免费| 欧美性爱第一页久久| 69国产对白刺激| 高清国产无码av| 国产亚洲福利第一页丝袜| 欧美超碰在线| 日本中文字幕不卡视频| www.亚洲黄色| 51久久夜色精品国产麻豆| 岛国福利在线精品播放| 99国产在线 精品 视频| 亚洲欧美自拍偷拍| 欧美日韩性爱操大逼| 日韩黄色一区二区三区| 亚洲图片偷拍视频区| 色婷婷成人| 操人妻少妇中文| www老逼91| 青青草乱入乱欲视频在线观看| 北京美女一区二区| 91 综合 色| 黑人性欧美| 碰碰97| 美女视频尤物网在线看| 亚洲乱码国产乱码精网站| 国产又操| 91久久国产综合久久| 精产国品一区二三产品| 狠狠做深爱婷婷久久二区| 正宗无毛一线天嫩逼| 青青色在线观看| 秋霞网—男女啪啪亚洲免费体验区 | 天天影视综合网欧美精品| 精品国产网站| 亚洲drav色图| 日韩精品-原创伙伴| 国产精品女aA片爽爽视频| 操逼日批| 天天日夜夜爽| 97超级欧美| 大鸡巴久久| 国产亚洲精品激情| 99热婷婷| 亚洲揄拍网| 嗯嗯不要视频| 欧美色视频在线| 人妻嗯啊啊在线播放| 一区二区 日韩 欧美 国产 传媒| 久久噜噜噜精品国产亚洲综合| 亚洲无 码A片在线观看麻豆| 国产白嫩漂亮KTV在线| 狠狠狠狠狠| 青草影院内射高潮| 视频国产成人精品日本亚洲18| 精品人妻一区| 97 亚洲 日韩 欧美 在线| 青青草久久| 国产精品人妻无码久久久互動交流 | 丝袜夫妻自拍| 一本大道久| 一级特黄aaa大片在线观看成人一级片在线观看| AV无码久久久精品| 麻豆精品A片免费观看| 精品一区二区三区蜜桃| 91香蕉视频在线观看免费| 综合熟女| 久久一二三四五六七八九区| 囯戸精品高潮呻吟旡码| 狂操嫩妻视频一区二区三区| 亚洲天堂久| 亚洲国产一区二区三区四区国产| 99精品丰满人妻无码| 91处女在线视频| 日韩成人在线性爱视频| 日本有码影片下载 | 91精品久久久久久综合五月天| 人妻少妇色综合| 男女性无套 免费九一| 久久婷婷五月天| 亚洲图片视频小说| 国产一区二区精品久久99| 91最新综合| 人人操欧美风骚| 欧美激情五月天| 99性爱在线观看| 人妻一区二区三区| 2020久久免费视频| 97网址www| 成年人黄色| 色色无码| 成人性交免费视频| 色情综合网| 青青草依人大香蕉| 五月丁香色色网| 欧美96交| av大香蕉| 天天cao在线| 日韩欧美女优电影| 夜夜精品视频| 久久久久久久久久久久久9999| 九九九九国产| 日本三级小说中文字幕| 无码137片内射在线影院| 夜夜操天天肏| 欧美日韩另类在线播放| 亚洲爱爱视频一区二区| 人人爱人人操人人性| 精品综合久久久久久97| 欧美精品自慰系列寂寞少妇| 欧美成人贴图| 天天影视色香色欲| 日韩欧美性吧婷婷乱伦大香蕉 | 亚洲图片日本AⅤ欧美在线| 国产熟女| 欧美午夜一区二区三区| 天天色综合影视网| 99这里只有精品| 精品国产Av无码久久久伦古装| 91大胆欧美| 欧美五十路熟| 97少妇人妻中文字幕久久| 色色综合网站| 大象AV在线| 日韩精品9区| 欧美色色色| 国产免费一区2区3区| 久久精品视频28| 8050无码八戒| 欧州91高潮| 夜精品久无码| 久久久久9| 人妻色偷色噜| 职场同事知名国产国产精品久久欧美日韩| 天堂8在线新版官网| 国产精品96| 亚欧美综合网。| 丁香久久| 白天啪啪晚上啪啪视频| 国产精品9999| ai欧美亚洲小说| 婷婷午夜| 天天色,天天干,天天干| 国产精品96久久久久久| 中文久久96| 久久草草欧美精品| 免费看黄视频亚洲网站| 东北熟女91| 欧美激色| 午夜天堂网| 国产亚洲在线观看| 亚洲制服aⅴ中文字幕| 亚洲图片91| 日产成人久久| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 精品黑人一区二区| 日日操免费视频| 超碰97国产欧美| 任你干在线视频| 熟女一区二区| 欧美日韩丝袜| 国产精品爽爽va在线观看98| www.色吧5.com| 青青青在线高清视频在线一二三四区| 大香蕉欧美国产日韩高潮| 翘臀vidoes| 亚洲精品a人片在线观看视| 精品三级在线专区| 欧美AB在线| 999色欧美中文字幕| 我中文字幕6区| AV高清一区| 精品久久久无码| 日韩另类| 亚洲偷拍自拍在线视频| 丰满人妻无码一区二区三区| 久久国产熟女影院| 丰满熟女一区二区三区在线播放| 99操逼| 亚洲日韩97| 久久中文字幕女同性恋一区| 狠狠躁天天躁日日躁| 99国产在线绯色一区| 欧美美女自慰一区二区三区| 国内三级自拍小视频在线观看| 操逼啊啊啊91| 淫荡少妇免费| 久久riav中文精品| 久操网无码在线| 国产精品国产自产高清AV| 美女操逼A A| 一级AV性爱| 中文字幕高清精品一区| 午夜福利1区2区3区| 国产精品亚洲色婷婷久久久| 日本操逼视频在线| 综合久久久久久久久91| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 欧美日韩亚洲电影| 精品无码久久久久| 日本久久999| 91 国产丝袜在线播放-百度| 久久超碰av在线| 国产精品久久久久久夜夜夜夜| 久久一本大香蕉 | 中文字幕免费看| 亚洲素人综合| 欧美欧美少妇| 99热这里只有精品18| 91天天综合网| 无码操逼视频一下| 亚欧成人综合影院| 老司机深夜影院18未满| 久久久国产成人一区二区三区在线 | 精品免费一区二区三区在线亚洲人成| 97日本超碰综合| 女一区二区| 好舒服视频| av橘色网站| 女性91网站| 一级AV性爱| 久久久免费一级黄片| 亚洲AV免费在线| 亚洲中文字幕妇伦久久| 五月天伊人| 91无码人妻| 青青五月天| 中文字幕精品免费一区二区| 视频在线观看免费一区二区三区| 久草福利在线资源站| 亚洲AV小说| 丁香五月天久久精品视频一区二区三区| 中文字幕综合人妻| 蜜臀Av一区二区三区| 一级黄色性爱裸体视频| 91成人久久| 日韩一级二级| 9999九九九久久久| 玖玖久久久| 国产亚洲精品无码三区| 久久久久9999| 国精综合一二三区影视| 国产日韩美女小穴视频网站不卡| 日本操逼视频免费| 日韩欧美俄罗斯A片| 夜夜夜久久| 综合熟妇一区二区三区| 亚洲欧美一区二区三区一猛片| 韩国久久97| 碰超人人在线一区二区三区| 91亚洲欧美激情| 精品毛片av一区二区| 狠狠久久亚洲欧美专区| 久久精品国产精品| 极品销魂美女一区二区| 操逼网免费无码视频| 艾草av| 中文字幕黄色一起草| 色色网91| 日本天天吊| 国产精品白丝AV| 欧美亚洲色图另类国产| 98一区二区精品| 蜜桃网熟妇| 超碰在线观看av不卡| 四虎影视在线| 激情综合 婷婷五月 红杏| 天天综合网日韩7799| 极品白嫩福利在线| 91宗合网| 日韩乱插| 天天激色| 波多野结衣一级视频| 久久综合乱子伦国产免费| 久久久久久人| AV免费在线播放一区| 影音先锋一区二区在线资源| 91这里只有精品| 九九碰九九爱97超碰| 91网站在线播放| 家庭乱伦性爱av| 中文字幕-区二区三区四区视频中国| 超碰97男女| 狠狠色丁香| 久久久免费高清中文视频| 大色综合网| 夜精品久无码| 国产性久久久| 蜜桃精品视频一区| se吧提供91精品国产91久久久久久| 超碰79人人乐| 综合色一区三区二区| 热久久这里只有精品| 中文字幕丝袜| 蜜臀少妇一区二区| 南澳成人一级片在线播放| 大香蕉丝袜一级片| 国际精品久久久| 九月丁香| 综合色好色| 国产suv精品一区二区四区999| 久久人| 欧美日韩m| 免费AV中文网在线观看| 在线观看AV不卡| 精品一级毛片在线观看| 蜜桃臀 后入 一区 二区 三区 在线| 精品免费一区| 日本不卡三级网在线播放| 13小男生GAY自慰脱裤子| 97超碰天天| 日本东京热加勒比久久| 丰满人妻一区| 国产免费一区在线观看| 国产日韩怡红院| 欧美亚洲国内自拍| 青娱乐福利99| 岛国人妻少妇av在线观看| 欧美一级特黄淫片在线观看| 国产熟女高潮一区二区三区| 九九无码视频| 久久精品久久久久久久| 欧美日韩夜夜| 久久无码成人| 久久伊人东京热| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 岛国AV一区二区电影| 色黄污美女啪啪啪免费网站| 97超碰这里只有精品| 九月婷婷久久| 激情熟女12P| 久久精品99| 丁香六月婷婷久久综合| 麻豆国产精品午夜视频| 亚洲综合69| 啊…啊…操我用力操我| 中文字幕精品一区二| 色97综合中文字幕| 欧美三级不卡| 日韩不卡在线一区二区| 久久啊啊| 98精品国产乱码久久久久久| 中文字幕av乱伦| 精品一级毛片在线观看| 偷拍色图| 欧美 亚洲 制服 精品| 很黄很色的视频在线观看| 999国产精品999久久久久久| 国产SV一线| 91婷婷| 伊人久久综合影院| 日逼97| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 青青草国产一区二区三区| 国产久久一区二区午夜| 啪啪资源网| 精品无码秘 人妻一区二区| 亚洲精品97中文字幕| 老熟女91av| www.99在线| 国产精品无码av| 蜜臀一区二区三区在线 | 国产成人精品无码久久| 欧美亚洲情色| 亚洲日韩久久精品一区| 日韩二区三四区五区六区在线看| 人人扣人人操| 2018天天干在线视频| 在线不欧美| 97 国产精品| 免费看污网址| 荡小穴在线观看| 99操视频| 天天干夜夜一操| 久久av无码| 国产熟妇 码视频户外直播| 男人天堂最新手机版在线青青草| 97综合国产精品高潮久久| 亚洲图片 91| 99热这里只有精品9| 手机在线视频国内精品| 四虎午夜影院| 日韩兔费看黄片| 国产97在线 | 亚洲| 91模特在线观看| 日本中文字幕熟妇| 欧美日动态视频| 久偷拍| 欧美亚洲丝袜美女电影| 久操99| 色99在线| 久久丁香五月天| 婷婷五月天av| 丁香五月天激情网站| 欧美黑人精品一区二区| 九九干| 日韩成人精品视频自拍| 亚洲成人性| 国产精品熟女九色九色蜜臀| 自拍偷拍草一草| 人人操 欧美| 夜夜操美女| 俄罗斯一区二区视频在线观看| 肏逼视频日本| AV麻豆免费一区| 国产精品盗摄 偷窥盗摄| 国产极品粉嫩馒头一线天av| 日本性感人妻91| 日韩簧片免费看| 欧美性生活免费网| 黑人操一区二区| 老司机深夜影院18未满| 久久九九国产精品| 女人被添高潮免费视频| 婷婷久久久| 久久天天摸| 蜜桃臀 后入 一区 二区 三区 在线| 黄色二级片网站| 91天射| 久久风骚城市| 久久超碰com| 啊啊啊在线观看|