日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

STM32F103裸機(jī)移植LVGL 8.2驅(qū)動(dòng)7寸屏完整指南

STM32F103裸機(jī)移植LVGL 8.2驅(qū)動(dòng)7寸屏完整指南 先說(shuō)結(jié)論STM32F103裸機(jī)跑LVGL 8.2、帶一塊7寸800x480的屏幕這事能成而且沒(méi)有想象中那么恐怖。網(wǎng)上搜F103LVGL十個(gè)帖子有八個(gè)在勸退理由不外乎內(nèi)存不夠、沒(méi)有FPU、刷新跟不上。這些理由在F407上成立放到F103上要分情況看——LVGL從v7到v8一直在為低資源設(shè)備做優(yōu)化分塊渲染加臟矩形刷新機(jī)制讓全幀緩沖不再是必需品。下面這套流程是我這次實(shí)際移植時(shí)走通的完整路線包括源碼裁剪、lv_conf.h配置、顯示和觸摸回調(diào)對(duì)接還有移植過(guò)程中踩過(guò)的幾個(gè)坑。適合手上正好有F103和一塊7寸屏、想徹底換掉老式控件UI的人參考也適合被舊教程的v7/v8 API差異搞到頭疼的初學(xué)者。1. 移植前的資源賬72MHz主頻和64KB SRAM夠不夠1.1 內(nèi)存賬為什么全幀緩沖直接出局但LVGL依然能跑7寸屏分辨率通常是800x480RGB565一個(gè)像素占2字節(jié)一幀全畫面需要768000字節(jié)約750KB。STM32F103ZET6的SRAM只有64KBC8T6只有20KB。凡是上來(lái)就在代碼里定義一個(gè)uint16_t framebuffer[800 * 480]的編譯能過(guò)運(yùn)行必掛。這是很多人在F103上移植失敗的第一道墻不是LVGL不行是方案選錯(cuò)了。LVGL解決這個(gè)問(wèn)題的思路是分塊渲染。它內(nèi)部維護(hù)一個(gè)draw buffer大小遠(yuǎn)小于全幀緩沖需要刷新時(shí)LVGL把整個(gè)需要重繪的區(qū)域切成一堆小塊一塊一塊地完成像素計(jì)算再通過(guò)flush_cb把這塊像素交給LCD。對(duì)一塊800寬的屏來(lái)說(shuō)如果給draw buffer分配16KB大約能存800x10行像素也就是一次只畫10行。渲染完這10行就馬上丟給屏幕控制器接著畫下一批10行。屏幕控制器內(nèi)部自帶GRAM的型號(hào)比如RA8875、SSD1963這類驅(qū)動(dòng)IC帶數(shù)百KB顯存MCU其實(shí)只負(fù)責(zé)把小塊數(shù)據(jù)傳過(guò)去真正的一幀畫面存在屏端。這也解釋了為什么F103這種小內(nèi)存MCU跑大屏UI理論上是可行的。內(nèi)存具體怎么分以ZET6的64KB SRAM為例兩個(gè)draw buffer各16KB加起來(lái)32KB丟給刷新用LVGL對(duì)象內(nèi)存池LV_MEM_SIZE開(kāi)24KB用來(lái)存放控件、樣式、事件等數(shù)據(jù)結(jié)構(gòu)剩下8KB左右留給中斷、局部變量和棧。如果屏幕是SPI接口且沒(méi)有足夠吞吐率可以退化成單draw buffer省16KB。這個(gè)預(yù)算很緊但做幾個(gè)頁(yè)面加若干控件夠用。1.2 刷新賬并口和SPI屏的差距不是一點(diǎn)半點(diǎn)7寸屏模塊的接口五花八門但對(duì)F103來(lái)說(shuō)接口基本決定了UI能做到多順滑。16位并口8080時(shí)序通過(guò)FSMC外設(shè)把LCD映射成一塊外部SRAM寫一個(gè)像素就是一次普通總線寫。72MHz下FSMC總線帶寬遠(yuǎn)大于UI刷新需求只要規(guī)劃好LCD窗口一屏畫面理論寫入時(shí)間在二三十毫秒量級(jí)跑LVGL的過(guò)渡動(dòng)畫可以接受。8位并口寫入一個(gè)像素需要兩次總線寫速度下降一半用是能用畫面略慢。SPI接口SPI1最高18Mbit/s換算約2.25MB/s傳完整屏768KB需要340ms以上。也就是說(shuō)刷新一整個(gè)畫面要接近0.35秒拖動(dòng)畫、滑菜單這類操作基本沒(méi)法看。SPI屏更適合做靜態(tài)界面或者在屏廠驅(qū)動(dòng)IC自帶局部刷新指令時(shí)針對(duì)小塊區(qū)域更新。所以要玩LVGLF1037寸屏我的建議很直接手上是并口屏就用起來(lái)SPI屏盡量換塊屏再折騰。網(wǎng)傳“F103帶不動(dòng)7寸屏”的說(shuō)法很多是用SPI慢屏試出來(lái)的錯(cuò)覺(jué)換成FSMC并口后體驗(yàn)完全不同。1.3 芯片型號(hào)ZET6、RCT6和C8T6的差別移植到一半才會(huì)暴露資源賬算完具體芯片選型也有講究。F103系列SRAM容量差異很大STM32F103ZET664KB SRAM、512KB Flash做這個(gè)方案最合適。STM32F103RCT648KB SRAM、256KB Flash湊合能用draw buffer壓到每塊12KBLV_MEM_SIZE給16KB也能轉(zhuǎn)起來(lái)。STM32F103C8T620KB SRAM、64KB Flash不推薦。draw buffer和LVGL內(nèi)存池根本分不過(guò)來(lái)加上LVGL 8.2編譯出來(lái)基礎(chǔ)體積就有小幾十KBFlash也很緊張。這幾個(gè)型號(hào)的工程代碼基本通用差別主要在啟動(dòng)文件的堆棧大小和linker腳本的內(nèi)存范圍。如果手上只有C8T6我的建議是降低分辨率換4.3寸屏或2.4寸屏UI一樣能玩別硬上7寸。2. LVGL 8.2源碼整理與lv_conf.h配置后面能不能跑起來(lái)全看這里2.1 源碼目錄精簡(jiǎn)三個(gè)該拿掉的文件夾和其他注意事項(xiàng)下載LVGL 8.2源碼后解壓出來(lái)會(huì)看到demos、examples、src幾個(gè)主要目錄。裸機(jī)移植時(shí)編譯對(duì)象只需要srcdemos和examples里的東西統(tǒng)統(tǒng)拿掉它們主要是給你參考和演示用的加進(jìn)來(lái)會(huì)拖慢編譯并且白白消耗Flash。很多CubeMX工程模板默認(rèn)會(huì)把整個(gè)lvgl文件夾全編譯等燒錄后才發(fā)現(xiàn)Flash不夠排查半天最后發(fā)現(xiàn)是demo占了三分之一。src目錄內(nèi)部不建議按文件夾手動(dòng)刪文件因?yàn)長(zhǎng)VGL各模塊之間依賴比較復(fù)雜刪錯(cuò)一個(gè)文件編譯報(bào)錯(cuò)會(huì)讓你懷疑人生。正確做法是保留整個(gè)src然后通過(guò)lv_conf.h里的開(kāi)關(guān)把用不到的組件、主題、字體關(guān)掉。例如不做圖表就不開(kāi)LV_USE_CHART不用下拉框就關(guān)LV_USE_DROPDOWN每關(guān)一個(gè)組件都能省下對(duì)應(yīng)的Flash和內(nèi)存占用。還有一點(diǎn)LVGL 8.2要求工程能編譯那些帶lv_前綴的一堆源文件。用Keil時(shí)建議直接把src下所有.c文件加入工程組文件數(shù)量很多但值得編譯時(shí)間也就幾十秒。官方提供的lvgl.mk是給Makefile工程用的也能自動(dòng)收集文件如果用Makefile不必手動(dòng)羅列。2.2 lv_conf.h里必改的宏顏色深度、內(nèi)存池、緩沖區(qū)掛鉤把lvgl根目錄下的lv_conf_template.h復(fù)制出來(lái)改名為lv_conf.h并確保它能被所有源文件包含。這個(gè)文件是整個(gè)移植最關(guān)鍵的一環(huán)幾個(gè)宏直接決定系統(tǒng)能不能跑#define LV_COLOR_DEPTH 16 #define LV_COLOR_16_SWAP 1 /* 后續(xù)根據(jù)屏幕實(shí)測(cè)再調(diào) */ #define LV_MEM_CUSTOM 0 /* 使用LVGL內(nèi)部?jī)?nèi)存分配器 */ #define LV_MEM_SIZE (24 * 1024) #define LV_TICK_CUSTOM 0 #define LV_DISP_DEF_REFR_PERIOD 30 #define LV_FONT_MONTSERRAT_14 1 #define LV_FONT_MONTSERRAT_20 1LV_COLOR_DEPTH必須跟LCD面板實(shí)際格式一致絕大多數(shù)7寸屏是RGB565也就是16位色。如果板子配的是RGB888的屏修改成24后draw buffer占用會(huì)暴漲50%內(nèi)存預(yù)算要重新算。LV_COLOR_16_SWAP是個(gè)很容易踩的坑。它是用來(lái)調(diào)整像素字節(jié)序的LVGL在內(nèi)存中按小端方式存放16位色但不同LCD控制器對(duì)RGB兩個(gè)字節(jié)的接收順序有差異?,F(xiàn)象就是界面“顏色偏藍(lán)”或“偏紫”把這項(xiàng)在0和1之間切換有時(shí)候就能解決。LV_MEM_SIZE直接決定能創(chuàng)建多少控件。24KB聽(tīng)起來(lái)不多但LVGL內(nèi)部是按對(duì)象拆分的一個(gè)普通按鈕幾十字節(jié)一頁(yè)十幾二十個(gè)控件完全能放下。如果創(chuàng)建控件后界面沒(méi)反應(yīng)、復(fù)位循環(huán)先懷疑這個(gè)值太小。2.3 別急著用malloc裸機(jī)環(huán)境下內(nèi)存分配有更穩(wěn)的選擇LV_MEM_CUSTOM這個(gè)宏是很多人會(huì)忽略的。它設(shè)為1時(shí)LVGL會(huì)調(diào)用malloc/free設(shè)為0時(shí)LVGL使用內(nèi)置的lv_mem_alloc/lv_mem_free內(nèi)存池就是2.2里那個(gè)LV_MEM_SIZE定義的靜態(tài)數(shù)組。裸機(jī)上直接用標(biāo)準(zhǔn)malloc我踩過(guò)坑。Keil的MicroLIB或者默認(rèn)堆分配器在長(zhǎng)時(shí)間運(yùn)行后容易產(chǎn)生碎片而且標(biāo)準(zhǔn)malloc的堆大小由啟動(dòng)文件里的Heap_Size決定跟linker腳本又耦合排查起來(lái)很麻煩。LVGL內(nèi)置分配器是為嵌入式場(chǎng)景設(shè)計(jì)的內(nèi)部有塊合并機(jī)制更適合裸機(jī)。如果確實(shí)想用自己的分配邏輯比如外部PSRAM才把LV_MEM_CUSTOM設(shè)為1并讓LV_MEM_CUSTOM_INCLUDE包含對(duì)應(yīng)的頭文件。F103沒(méi)有外部?jī)?nèi)存控制器老老實(shí)實(shí)用內(nèi)置分配器最省心。主循環(huán)里調(diào)試時(shí)還可以用lv_mem_monitor函數(shù)看內(nèi)存占用判斷控件創(chuàng)建多了還是泄漏了后面避坑部分會(huì)再提。3. flush_cb顯示回調(diào)像素如何從LVGL畫布跑到LCD上3.1 FSMC并口屏把7寸屏映射成一塊外部SRAM16位并口8080屏接到F103ZET6最標(biāo)準(zhǔn)的方式是用FSMC外設(shè)。FSMC本是用來(lái)擴(kuò)展NOR Flash和SRAM的但LCD控制器本質(zhì)上也是“讀寄存器/寫數(shù)據(jù)”的并行設(shè)備于是可以把LCD當(dāng)成一塊外部SRAM掛在Bank1上。我們只要對(duì)某個(gè)內(nèi)存地址寫一個(gè)值FSMC就會(huì)自動(dòng)產(chǎn)生時(shí)序把數(shù)據(jù)送到LCD數(shù)據(jù)總線。連線思路是NE1負(fù)責(zé)片選NOE接RD引腳NWE接WR引腳地址線A16接LCD寄存器選擇RS16根數(shù)據(jù)線D0-D15接LCD的DB0-DB15。FSMC對(duì)應(yīng)的GPIO要設(shè)置為50MHz復(fù)用推挽輸出同時(shí)打開(kāi)FSMC外設(shè)時(shí)鐘GPIO_InitStructure.GPIO_Pin GPIO_Pin_0 | GPIO_Pin_1 | ... | GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; GPIO_Init(GPIOD, GPIO_InitStructure);關(guān)鍵在CMD和DATA的地址區(qū)分。LCD控制器通過(guò)RS引腳高低來(lái)區(qū)分當(dāng)前是寫命令還是寫數(shù)據(jù)。RS接到FSMC的A16在16位數(shù)據(jù)模式下對(duì)應(yīng)地址偏移是0x20000。源碼里可以這樣定義#define LCD_BASE ((uint32_t)0x60000000) #define LCD_REG (*(volatile uint16_t *)(LCD_BASE)) #define LCD_RAM (*(volatile uint16_t *)(LCD_BASE | 0x00020000))先給LCD_REG寫命令再給LCD_RAM寫數(shù)據(jù)。很多例程會(huì)把第二個(gè)地址寫成0x60010000這是把A16偏移算錯(cuò)了結(jié)果就是LCD控制器收到的命令一塌糊涂屏幕初始化失敗白屏。如果RS接的是A18偏移就是0x80000務(wù)必對(duì)著自己的原理圖算偏移別照抄。FSMC時(shí)序初始化時(shí)地址建立時(shí)間給1個(gè)HCLK、數(shù)據(jù)建立時(shí)間給2個(gè)HCLK通常就能穩(wěn)定驅(qū)動(dòng)SSD1963這類控制器FSMC_NORSRAMInitStructure.FSMC_AddressSetupTime 1; FSMC_NORSRAMInitStructure.FSMC_DataSetupTime 2;如果屏幕出現(xiàn)閃爍或偶爾花屏把DataSetupTime加到3往往就好了。這也是個(gè)經(jīng)驗(yàn)值具體參照屏幕控制器datasheet的讀寫周期要求調(diào)整。3.2 flush_cb完整寫法設(shè)置窗口再連續(xù)寫像素LVGL要刷新一塊區(qū)域時(shí)會(huì)調(diào)用注冊(cè)的flush_cb給一個(gè)area區(qū)域左上右下坐標(biāo)和一個(gè)color_p像素指針。我們收到這套數(shù)據(jù)后要先告訴LCD控制器一個(gè)窗口范圍然后連續(xù)寫入像素。static void lcd_fill_area(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, const uint16_t *pixels) { LCD_REG 0x2A; /* 列地址設(shè)置 */ LCD_RAM x1 8; LCD_RAM x1 0xFF; LCD_RAM x2 8; LCD_RAM x2 0xFF; LCD_REG 0x2B; /* 行地址設(shè)置 */ LCD_RAM y1 8; LCD_RAM y1 0xFF; LCD_RAM y2 8; LCD_RAM y2 0xFF; LCD_REG 0x2C; /* 存儲(chǔ)器寫 */ uint32_t len (uint32_t)(x2 - x1 1) * (y2 - y1 1); for (uint32_t i 0; i len; i) { LCD_RAM pixels[i]; } }注意一定要先設(shè)置窗口再連續(xù)寫數(shù)據(jù)別按整個(gè)屏幕的線性地址去推算像素位置。不同LCD控制器具體命令號(hào)有差異RA8875的窗口設(shè)置命令和SSD1963不一樣但思路相同。flush回調(diào)本身不復(fù)雜static void disp_flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p) { lcd_fill_area(area-x1, area-y1, area-x2, area-y2, (uint16_t *)color_p); lv_disp_flush_ready(disp_drv); }FSMC循環(huán)寫是同步操作數(shù)據(jù)寫完后就能通知LVGL緩沖區(qū)可以復(fù)用了。這里有一個(gè)很多教程沒(méi)講透的細(xì)節(jié)在flush_cb里調(diào)lv_disp_flush_ready的位置本質(zhì)上表示“這塊區(qū)域的數(shù)據(jù)我已經(jīng)拿走了”。FSMC寫法簡(jiǎn)單直接寫完立刻調(diào)用沒(méi)問(wèn)題DMA后臺(tái)傳輸則不行必須等傳輸完成中斷里再調(diào)用不然下一幀的像素可能覆蓋當(dāng)前正在傳輸?shù)木彌_區(qū)畫面會(huì)出現(xiàn)撕裂。3.3 SPI屏的DMA方案與“等傳輸完成再發(fā)ready”問(wèn)題如果手里的7寸屏是SPI接口建議先權(quán)衡刷新速度非要移植的話DMA是必須的否則每像素都走CPU等待收發(fā)刷新直接沒(méi)法看。SPI屏的flush思路是先向LCD控制器發(fā)送窗口設(shè)置命令再啟動(dòng)DMA把color_p里的像素?cái)?shù)據(jù)轉(zhuǎn)成SPI輸出。關(guān)鍵點(diǎn)是lv_disp_flush_ready不能在啟動(dòng)DMA后立刻調(diào)用要在DMA傳輸完成中斷里調(diào)用void DMA1_Channel3_IRQHandler(void) { if (DMA_GetITStatus(DMA1_IT_TC3)) { DMA_ClearITPendingBit(DMA1_IT_TC3); lv_disp_flush_ready(disp_drv); } }這里還有一個(gè)對(duì)齊問(wèn)題。STM32F103的DMA對(duì)源地址有對(duì)齊要求color_p是LVGL從draw buffer里切出來(lái)的地址是隨機(jī)偏移可能不滿足4字節(jié)或2字節(jié)對(duì)齊。實(shí)測(cè)中不放心的話可以在自己定義的flush函數(shù)里先把像素拷貝到一個(gè)靜態(tài)對(duì)齊數(shù)組里再啟動(dòng)DMA。注意數(shù)組要帶對(duì)齊屬性static uint16_t dma_buf[800 * 10] __attribute__((aligned(4)));不過(guò)拷貝也費(fèi)時(shí)間若能確保draw buffer起始地址和每次切塊的偏移都對(duì)齊就能省掉這步。剛上手時(shí)我建議先加拷貝穩(wěn)定性比重那一點(diǎn)速度重要。4. SysTick心跳與XPT2046觸摸讓UI活過(guò)來(lái)的兩個(gè)底層驅(qū)動(dòng)4.1 心跳時(shí)基SysTick被HAL庫(kù)占用后怎么辦LVGL所有動(dòng)畫、定時(shí)器、控件狀態(tài)刷新都依賴一個(gè)毫秒級(jí)時(shí)基裸機(jī)上就是把lv_tick_inc(1)按固定周期喂給它。最簡(jiǎn)單方案是SysTick 1ms中斷但如果你用CubeMX的HAL庫(kù)生成工程SysTick已經(jīng)被HAL庫(kù)用來(lái)做HAL_GetTick的時(shí)基此時(shí)直接覆蓋中斷函數(shù)會(huì)引發(fā)HAL_Delay死循環(huán)。兩個(gè)處理辦法。第一在SysTick_Handler里同時(shí)調(diào)用HAL_IncTick()和lv_tick_inc(1)void SysTick_Handler(void) { HAL_IncTick(); lv_tick_inc(1); }這個(gè)辦法代碼少但SysTick里干了兩件事以后想改時(shí)基會(huì)牽一發(fā)動(dòng)全身。第二用TIM2做1ms定時(shí)中斷單獨(dú)把時(shí)基交給LVGLvoid TIM2_IRQHandler(void) { if (TIM_GetITStatus(TIM2, TIM_IT_Update)) { TIM_ClearITPendingBit(TIM2, TIM_IT_Update); lv_tick_inc(1); } }我推薦第二種。TIM2和HAL互不干擾排查問(wèn)題的時(shí)候邏輯清晰。lv_conf.h里L(fēng)V_TICK_CUSTOM保持0LVGL就會(huì)用lv_tick_inc這個(gè)接口。主循環(huán)結(jié)構(gòu)也需要注意while (1) { lv_timer_handler(); delay_ms(5); }lv_timer_handler的調(diào)用間隔決定了LVGL的刷新速率不能讓它被其他耗時(shí)任務(wù)阻塞太久。如果主循環(huán)里還有別的業(yè)務(wù)邏輯盡量保證一次循環(huán)的耗時(shí)在10ms以內(nèi)。4.2 XPT2046讀取代碼從SPI時(shí)序到觸摸點(diǎn)坐標(biāo)7寸電阻觸摸屏最常見(jiàn)的觸摸控制器是XPT2046它用SPI接口輸出12位坐標(biāo)數(shù)據(jù)。讀取流程是拉低CS發(fā)送一個(gè)控制字節(jié)然后把SPI時(shí)鐘繼續(xù)打兩輪從返回?cái)?shù)據(jù)中拼出坐標(biāo)??刂谱止?jié)里0xD0表示讀X坐標(biāo)0x90表示讀Y坐標(biāo)。一個(gè)可用的讀取函數(shù)static uint16_t tp_read_channel(uint8_t cmd) { uint16_t value 0; TP_CS_LOW(); spi_read_write(cmd); uint8_t b0 spi_read_write(0x00); uint8_t b1 spi_read_write(0x00); TP_CS_HIGH(); value ((uint16_t)b0 8 | b1) 3; return value; }右移3位是把16位拼接結(jié)果里的多余低位丟掉保留12位有效數(shù)據(jù)。SPI頻率建議控制在1MHz左右XPT2046對(duì)時(shí)序要求不高但線長(zhǎng)干擾多時(shí)降速更穩(wěn)。裸機(jī)上讀取觸摸可以放在LVGL的indev回調(diào)里被動(dòng)讀取也可以用定時(shí)器主動(dòng)掃描后保存全局變量。LVGL的indev回調(diào)本身就是周期調(diào)用直接在回調(diào)里讀就行。電阻屏有個(gè)物理特性按下瞬間的采樣值不穩(wěn)定建議連續(xù)讀三到五次取中間值或者做平均不然會(huì)出現(xiàn)點(diǎn)擊跳點(diǎn)。4.3 坐標(biāo)映射與旋轉(zhuǎn)觸摸錯(cuò)位的三個(gè)高頻原因觸摸回調(diào)用來(lái)喂給LVGL的是屏幕邏輯坐標(biāo)而屏幕上應(yīng)當(dāng)是控件所在的像素坐標(biāo)。XPT2046輸出的是0-4095范圍內(nèi)的12位原始值背后是觸摸面板的物理坐標(biāo)系跟屏幕像素坐標(biāo)系可能有鏡像、翻轉(zhuǎn)、縮放三種關(guān)系。最簡(jiǎn)單的一種映射是線性縮放data-point.x (uint16_t)((uint32_t)raw_x * 800 / 4096);>x 800 - x; /* 水平鏡像 */ y 480 - y; /* 垂直鏡像 */第二個(gè)是xy互換。有些7寸屏觸摸面板的X方向?qū)?yīng)LCD的Y方向需要交換x和y再做縮放。第三個(gè)是LVGL的顯示旋轉(zhuǎn)和觸摸旋轉(zhuǎn)沒(méi)有同步。LVGL 8.2的disp_drv結(jié)構(gòu)體里有rotated字段旋轉(zhuǎn)屏幕后觸摸回調(diào)收到的坐標(biāo)系仍然是原始物理坐標(biāo)如果只旋轉(zhuǎn)顯示不旋轉(zhuǎn)觸摸點(diǎn)擊必然錯(cuò)位。我踩坑后的做法是盡量不依賴LVGL的rotated字段而是在自己的觸摸映射函數(shù)里統(tǒng)一完成旋轉(zhuǎn)和鏡像這樣邏輯最簡(jiǎn)單出錯(cuò)也容易排查。5. 實(shí)測(cè)避坑記錄從白屏到觸摸偏位的完整排查過(guò)程5.1 白屏不是LVGL沒(méi)跑是FSMC寫操作壓根沒(méi)進(jìn)LCD白屏是7寸屏移植時(shí)遇到最多的現(xiàn)象大部分人第一反應(yīng)是LVGL初始化失敗其實(shí)九成是LCD通路本身沒(méi)打通。我的排查順序是這樣的先在main函數(shù)里、任何LVGL代碼之前單獨(dú)跑一段LCD驅(qū)動(dòng)測(cè)試——直接向LCD_REG寫0x2C命令然后連續(xù)寫1000個(gè)0xF800紅色和0x07E0綠色。如果屏幕有紅綠交替顯示說(shuō)明FSMC映射、LCD控制器初始化、GPIO配置都正確問(wèn)題在LVGL側(cè)如果屏一直白著問(wèn)題在FSMC或LCD驅(qū)動(dòng)跟LVGL無(wú)關(guān)。白屏?xí)r重點(diǎn)檢查這四處FSMC時(shí)鐘是否開(kāi)啟GPIO是否配置為AF_PPCMD/DATA地址偏移是否按RS所接地址線正確計(jì)算LCD控制器初始化時(shí)序是否夠?qū)捤捎绕涫荄ataSetupTime太小有沒(méi)有把LCD的復(fù)位腳拉高并延時(shí)足夠長(zhǎng)有些屏需要50ms以上。按這個(gè)順序排查基本能定位到根因。5.2 顏色發(fā)藍(lán)或偏紅RGB與BGR的字節(jié)序問(wèn)題UI跑起來(lái)了但顏色整體不對(duì)比如紅色按鈕變成藍(lán)色、膚色發(fā)紫。這個(gè)現(xiàn)象百分之八十是RGB565字節(jié)序不匹配。LVGL內(nèi)部畫像素時(shí)用的是16位整數(shù)值內(nèi)存里低字節(jié)和高字節(jié)的排列順序是固定的但LCD控制器端的串轉(zhuǎn)并邏輯可能期望高字節(jié)在前或低字節(jié)在前。這時(shí)去lv_conf.h里切換LV_COLOR_16_SWAP的值0改1或1改0問(wèn)題通常立刻消失。如果切換后顏色還是偏再去看LCD控制器的RGB順序寄存器。RA8875和SSD1963都有類似“RGB/BGR”的模式位例如設(shè)置0x36寄存器可以讓內(nèi)存中的RGB順序最終映射到屏幕像素。我當(dāng)時(shí)同時(shí)動(dòng)了lv_conf.h和LCD寄存器才把顏色調(diào)正而且兩個(gè)地方的效果是疊加的所以調(diào)試時(shí)要一次只改一個(gè)變量別兩個(gè)一起改。另外要注意draw buffer里的顏色位深必須與LV_COLOR_DEPTH一致。如果源工程是8位屏改過(guò)來(lái)的LV_COLOR_DEPTH還是8會(huì)出現(xiàn)顏色慘不忍睹的塊狀漸變。直接確認(rèn)這個(gè)宏在16就行。5.3 運(yùn)行幾分鐘后HardFault內(nèi)存碎片與棧溢出界面能顯示但運(yùn)行一段時(shí)間后突然卡死進(jìn)HardFault中斷這是裸機(jī)移植的經(jīng)典難題。原因通常是以下三個(gè)之一棧溢出。LVGL繪制過(guò)程中會(huì)嵌套調(diào)用大量函數(shù)尤其帶樣式、帶圓弧的控件棧使用量比想象中大。啟動(dòng)文件里Stack_Size如果用默認(rèn)的0x200或0x400很容易爆棧。我建議把Stack_Size改成0x1000也就是4KB。對(duì)于64KB RAM的ZET6來(lái)說(shuō)這個(gè)開(kāi)銷值得。內(nèi)存池耗盡。LV_MEM_SIZE設(shè)小了控件創(chuàng)建多了之后LVGL內(nèi)部分配失敗但上層代碼沒(méi)有正確判斷繼續(xù)操作空指針。解決方法是打開(kāi)lv_conf.h里的LV_USE_MEM_MONITOR在外部循環(huán)定期調(diào)用lv_mem_monitor輸出剩余內(nèi)存觀察是不是隨著操作單調(diào)遞減。如果數(shù)值在下降多半是某些控件的事件回調(diào)里反復(fù)創(chuàng)建對(duì)象但沒(méi)有刪除。DMA緩沖對(duì)齊問(wèn)題。SPI DMA傳輸時(shí)如果源地址不滿足控制器要求DMA會(huì)卡住或者傳錯(cuò)數(shù)據(jù)。最穩(wěn)妥是給DMA專用緩沖加aligned屬性或者先拷貝到對(duì)齊數(shù)組成員。HardFault問(wèn)題難排查好解決之后要總結(jié)出規(guī)律每次添加新控件或新動(dòng)畫后先把棧加大一檔、內(nèi)存池觀察一段時(shí)間再上線復(fù)雜業(yè)務(wù)邏輯。5.4 界面刷新慢優(yōu)化效果與參數(shù)實(shí)測(cè)7寸屏上LVGL的默認(rèn)刷新率配置是30Hz理論上每33ms刷新一次臟區(qū)域。實(shí)際卡頓的優(yōu)化方向很清晰編譯器優(yōu)化。Keil下-O0和-O2在純渲染場(chǎng)景實(shí)測(cè)差距可能有1.5倍以上。LVGL這類需要密集像素計(jì)算和內(nèi)存操作的代碼不開(kāi)優(yōu)化等于讓F103背著沙袋跑步。工程最終發(fā)布時(shí)務(wù)必開(kāi)-O2。draw buffer尺寸。從一個(gè)16KB單緩沖改成兩個(gè)16KB雙緩沖撕裂明顯減少再把每個(gè)buffer從16KB提到24KB渲染整塊區(qū)域時(shí)批處理比例更高CPU反而更輕松。內(nèi)存如果實(shí)在緊張優(yōu)先保雙緩沖尺寸可以壓縮。減少透明效果和陰影。LVGL的默認(rèn)主題帶圓角、陰影、透明度這些效果在F103上每幀要額外計(jì)算一遍alpha混合。想流暢就把LV_THEME_DEFAULT的shadow_width改為0border_width用默認(rèn)但關(guān)掉陰影。下面是我在ZET6上測(cè)過(guò)的幾種配置效果配置實(shí)際感受單緩沖16KB-O0切頁(yè)有明顯閃爍滑動(dòng)卡頓雙緩沖16KBx2-O0不閃了但拖動(dòng)響應(yīng)不夠跟手雙緩沖16KBx2-O2基本流暢動(dòng)畫能看雙緩沖24KBx2-O2主觀跟手復(fù)雜頁(yè)面偶有掉幀F(xiàn)103畢竟是72MHz的老架構(gòu)想把7寸屏拖出F4那種絲滑感不現(xiàn)實(shí)但只要避開(kāi)透明動(dòng)畫、大面積全屏重繪這幾個(gè)高成本操作簡(jiǎn)單列表、按鈕、儀表盤頁(yè)面完全穩(wěn)得住。我這次移植用的是SSD1963并口屏、XPT2046電阻觸摸最后定下來(lái)雙緩沖24KBx2、LV_MEM_SIZE 24KB、-O2優(yōu)化。7寸屏跑起來(lái)普通頁(yè)面切換和按鈕交互都沒(méi)問(wèn)題唯一需要注意的是別在F103上做大量列表項(xiàng)的同時(shí)開(kāi)陰影和漸變否則幀率肉眼可見(jiàn)地掉。這套參數(shù)在RCT6上我也試過(guò)把draw buffer壓到12KBx2之后依然能跑只是內(nèi)存更緊張。如果你也打算移植先在裸板上把LCD單通測(cè)試過(guò)了再談LVGL配置這條路走下來(lái)會(huì)順暢很多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
看大黄色大片原件| 欧美色图自拍| 波多野结衣被操50分钟免费视频 | 在线洲亚线| 九九久久九九久久| 操逼逼中文字幕| 欧美亚洲国产91在线| 怡红院亚洲怡春院av| 男人天堂2019亚洲| 日本一区二区不卡精品| 久久无码一区二区二三区性色| 色一区二区三区综合| 91欧美长吊| 五月婷在线| 蜜乳性色无码专日粉嫩骚逼AV| 国产精品96| 日本精品一区二区不卡| 欧美日韩97在线| 久操操| 婷婷丁香五月综合| 日本午夜精品理论片A级APP发布| 一线黄色免费性爱片| 久操免费在线| 婷婷五月天激情四射| 亚洲狠狠入| 日本不卡一区二区三区| 人人妻人人色| 夜夜 中文视频rt| 福利风月五月天影院| 欧美国产日韩清纯唯美| 激情开心五月天| 91狠狠色丁香婷婷综合久久| 亚洲欧美经典一区二区| av日韩手机在线影视| 五月婷婷六月丁香网址| 免费操逼视频下载| 五月丁香激情综合| 亚洲日本男人天堂网| 色av中文字| 亚洲一区深夜| 精品人人| 婷婷五月天久久精品视频一区二区三区 | 户外裸露刺激视频第一区| 大学生口爆吞精| 1人人看人人摸人人操| 国产福利一区二| 2024年最新色情网站在线观看| AAAA欧美日韩| 日本成人电影资源网| 成人aⅴ一区二区三区| 国产高清精品一区二区三区毛片 | 亚洲色人妻综合| 亚洲精品男人的天堂| 9九九九九视频在线观看| 婷婷四五区| 精品射1999| 久久av网| 性高潮久久久| 天天干天天舔| 欧日a| 95精品在线| 久久超碰、| 欧美日韩人妻少妇 一区二区三区| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 夜夜国产一区| 91在线一起| 屁股久久久久久| 综合av社区| 最新中文字幕在线亚洲| www.狠狠干.coom | 国产精品视频一区二区三区八戒| 99热这里只有精| 中文字幕在在线观看网站| 又黄又粗又硬又长又大| 女上位精品在线| 欧美中文综合| 日韩三级一区| 久久久久久少妇| 久久啊啊| 国产精品欧美日韩久久| 中文字幕国产精品1区| 九九热五区| 男人天堂无码| 一道α片欧美| 久热这里| 狠狠爱AV| jizz啪啪| 91国产精品在线看| 啊啊啊啊啊好舒服视频| 大香蕉伊人网| 色色婷婷五月天| 农村妇女精品一区二区| 蜜臀99久久精品久久久懂爱| 日韩精品人妻中文字幕不卡乱码| 亚洲精品久久一区二区三区蜜桃臀| 欧美另类自拍 | 国产精品色哟哟| 精品二区久久| 日韩一级特黄av毛片| 97免费在线视频在线观看| nuu12国产麻豆精品| 9久精品| 婷婷中文网| 亚洲综合性感在线| 99久久久无码国产精品性啊聊| 日韩AV无码中文一区二区| 九九九久千久久激情蜜桃在线看 | 91爱综合| 98超碰欧美| av日韩在线观看电影| 亚洲激情 欧美色图| 日韩一级二级三级免费看完整版| 青青草日本无码| 亚洲丝袜在线观看| 91黑丝露脚| 抽插亚洲无码| 综合熟女| 91综合色噜噜| 按摩中文字幕| 国产精品盗摄 偷窥盗摄| 欧美超碰9798| www久久国产精品| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 欧美色图 人妻| 超碰日韩人妻| 国产夫妻性生活视频| 93人人操人人| 9丨久久九九九| 超碰AV在线| 激情小说亚洲色图| 97色诱| 免费av高清无码| 欧日韩在线观看| 亚洲国产一区二区入口| 热热色色综合| www.色婷婷| 国产激情在线| 熟女露脸激情自拍视频| www久久久| 操逼操逼操| 密臀在线免费观看| 91 亚洲 欧美 日韩 国产 综合| 色综合1991| 久久久久久久人妻| 精品国产乱码| 中文字幕午夜精品久久久| 一区在线观看中文字幕| 影音先锋新男人| 超碰视97中文| 九九在线视频| 亚洲图片激情综合另类| 好一吊区二区| 欧美日韩222| 日韩av在线免费网站| 新91视频.cmp| 综合久欧洲| 久久精品店| 亚洲图片欧美色| 超碰地址97| 婷婷五月天色色| 精品欧美不卡在线播放| 人妻五十路在线| 日韩三级一区 | 吖在线不卡一区二区国产剧情| 欧亚成人在线视频| 91色五月俺来也| 精品中文字幕一区二区l - 百度| 性综合网| 97中文字幕一区| 日韩成人色图| 美日韩成人| 性爱视频啪啪啪啪| 欧美亚洲中文| 91丝袜美女视频| 日本A级视频| 爆操无码| 国产毛片在线| 国产在线强奸视频| www.99色| 日日操免费视频| 久操视频这里只有精品| 亚州男人的天堂| 天天射网| 精品女人999| 久草免费福利在线播放| 国产精品直播在线观看直播| 啊啊啊啊免费视频| 亚欧美综合| 自拍视频大全亚洲专媒视频/一区二区三区 | 97视频在线看| 女人综合网| 久久精品一区二区三区蜜桃臀| 极品白嫩福利在线| 久久久久9999妇女| 四虎884a| 欧美大香蕉97| 久插不卡| 秋霞男人网| 日韩内射视频| 偷拍 亚洲| 天美国产精品| 亚洲人妖网| 禁十八久久| 97爱免费插| 亚洲,欧美,春色,另类| 少妇超碰在线| 青青草吊丝| 久久e6只有精品| 天天综合网国产| 99自拍视频在线| 欧美日韩狠狠爱| 欧美一区二区三区成人性生活| 99色婷婷中文字幕乱色| 久艹99| 天天色综合影视网| 日本精品一区二区三区四区的功能| 亚洲人妻爽爽爽| 78m成人视线| 狠狠爱大香蕉| 免费的很黄很污的全部视频| 亚一综合久久久久久久久久| 欧美人人AAA| 色色色色网站| 日韩内射视频| 美性中文综合网| 91美女视频电影| 夜夜免费视频| 香蕉精品二区二区| 亚洲成人激情小说视频| 日韩乱伦AⅤ| 亚洲无码久久久久久久| 丁香成人五月天| 91麻豆天美国产欧美| 国产一区96在线| 密臀在线免费观看| 亚洲se电影| 欧美97爱| 大香蕉黄色一区| 看日韩美女二区三区免费操逼视频| 欧美淫穴| 亚洲日本天堂| 女人精品内射国产99| 黄色AV免费| 国产高清成人mv在线观看| 欧美一区二区三区日韩| 亚洲中文字幕熟女| 精品性爱一区二区| 中文字幕91综合| 久草男人天堂| 亚洲天堂男人的天堂| 久久久精品91八戒| 综合色色婷婷| 欧美日本天堂| 欧美综合亚洲综合| 无码聚合| 东京热一区二区三区四区五区六区| 青青草AV色| 成人自拍三级在线观看| 69精品人人人人| 中国黑人三级片网站上区| 日韩欧美中文字幕搭讪巨乳美人妻视频| 少妇久久久久久| 成人午夜小视频手机在线看| 免费人人搞97| 少妇久久久| 91干熟女| AV天堂因数| 欧美激情性爱视频网站| 欧美日韩大陆黑人少妇99| 天堂亚洲精品| 亚洲一卡2卡3卡4卡乱码网站| 天天肏美女| 精品美女少妇一区二区| 日韩久久.一级黄色片| 国产AV天美| 97欧美综合| 久超碰这里只有精品| 亚洲国产精品成人综合| 999日韩中文精品观看视频。| 国产精品久久久久久夜夜夜夜| 狠狠婷婷亚洲中文综合久久| 亚 欧 美 综合| julia国产在线 | 国产精品视频白浆免费| 美日韩在线不卡人妻| 人妻另类 专区 欧美 制服| 欧美日韩999| 亚洲综合色在线| 国产精品干干干| 免费网站观看www在线观| 国产精品午夜AV完会免费| 色婷婷久久| 嗯嗯不要 视频| 超碰91在线| 久久熟女嫩草成人片免费| 国产高清MV操逼视频| 亚洲男人天堂2016| 国产福利小视频高清在线观看| 亚洲综合性网址| 日韩黄片视频试看| 国产女人9999| www色婷婷| 久久黄黄黄| 亚洲五月天激情| 免费视频97| 99热免费| 国产福利电影| 久久久久久国产精品免费网站| 你草精品在线视频| ji熟女.com| 蘋果手機免費看成人Av| 日韩中文字幕在线视频观看| 嗯嗯啊啊啊好爽| 天堂精品在线| 天天色黄色影院天天操| 中文子幕一二三| 99久久久无码国产精品性男| 97超碰美女| 嗯嗯啊啊用力视频免费| 乱伦图一区| 色97欧美| 久久人人爽爽爽人久久久| 国产三级资源在线观看| 久久9精品网站| 超碰人人色| 久久久少妇| 人人搡人人肉久久精品| 天天综合网一91网| 一区操逼日比视频| 欧美美女视频| 肉丝中文无码高清| 91麻豆天美传媒HD| 亚洲欧美日韩夜夜| 日韩三级伦理中文字幕| 久久人妻一区二区三区高清| 97色97好| 丁香六月婷| 老熟女搡BBBB搡BBBB视频| 33044男人的天堂深夜备| 91 在线亚洲| 在线五区| 欧美九九99久久精品| 欧美另类综合久久| 久久六六| 可乐操亚洲蜜911| 亚洲情色1区| 国产精品亚洲免费| 中文字幕一二区二三区人妻专区| 欧美一级在线观看成人| 亚洲AV色图| 999 久久久| 青娱乐 成人娱乐在线| 26uuu国产免费观看| 亚洲AV无码乱码| 男女啊啊啊啊啊| 精品人妻一二三四区视频| 蜜臀久久一区二区| 精品一区二区成人动漫| 911av网站免费观看| 日本熟妇人妻一区二区三区| 人乳av| 日韩美女高潮喷水视频| 观看免费区二区三区二| 天天射网| 婷婷成人久久久精品| 极品尤物在线观看| 精品国产www久久| 无码丰满熟妇一区二区浪潮AV| 久艹日日日| 熟人人妻少妇精品久久| 丝袜视频网国产90| 成人资源中文字幕在线观看| 另类老少妇| 欧美v亚洲v日韩v最新在线二区| 国模私拍一区二区三区神乳| 日韩视频精品在线观看| 色综合av综合久久| 久久久久久久精| 黄色工厂这里只有精品| 精品无码少妇| 青青青在线高清视频在线一二三四区 | 人妻熟妇一区二区三区| 丝袜加勒比| 国产精品一区二区麻豆| 久久成人精品| 欧美翘臀视频网站一区二区三区 | 天天拍天天操| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 国产精品午夜精品| 日韩在线观看AV| 九九九九九九免费视频| 中文字幕第二页| 亚洲丨在线| 九九九九九精品视频| 午夜啊啊| 欧美天天综合网| 日语五十路和六十路亚洲国产精品| 看全色黄大色大片免费视频| 不卡av在线中文字幕| 奇米四色影视777久久久| 日本操逼二区| 在线另类| 韩日男人的天堂| 久久久久密臀一区二区| 蜜桃臀AV在线| 2017亚洲天堂| 97jingpin| 91国产丝袜白虎| 欧美+日产+中文| 思思久热在线精品66| 五码视频在线观看| 亚洲第一无码播放立川理惠| www四虎| 亚洲成人色情五月天丁香花| 凌辱美少妇久久aV| www.99色| 大香蕉伊人久久| 麻豆区99999| 亚洲高清男人天堂| 91色狼| 国产高清在线观看欧美| 男人兔费天堂| 97超碰中文字幕| 91亚洲综合| 密乳AV免费观看| 久久99网站| 日逼五月天| 97 国产精品| 日韩性爱啪啪视频| 日韩黄色一区二区三区| 后入内射蜜桃臀| 国产精品69久久久久久久| 无码人妻1727| 人妻-91porn| 区一二区日韩亚洲乱码av电影| 超碰在线1234区| 欧美成人一级麻豆| 九九无码| 高清孕妇孕交 交孕妇| 极品色| 精品国产www久久| 国产精品亚洲四五区在线观看| 日本天天操| 亚洲日韩欧美一区二区| 日欧操屄| 任我爽视频在线观看| 夜夜嗨一区| 粉嫩粉嫩一区性色AV片| 日韩情色AV| 精品久久久久久中文字幕视频免费| 亚洲AV无码成人精品久久| 男人干美女| 国产精品九九九| 99热9| 97人人色| AV大香蕉| 91亚洲网站| 亚洲天堂热| 国产精品在线一区二区| 大学生口爆吞精| 欧美亚男人的天堂| 中英熟女操女| 中文字幕91综合| 九热久| 久久99综合| 亚洲色图8| 屁屁影院一区二区三区国产| 风月影院男女十八禁| 久操网无码在线| av麻豆啪啪| av强奸乱轮| 97超碰在线资源网站| 久久受www免费人成| 亚洲日韩av一区二区三区百合| 男人久久天堂| 久久手机视直播| 亚洲色图欧美色图另类图片| av优播| 亚洲成人性爱在线观看| 99在线无码精品秘 入口黑人| 人妻无一区二区三区| 亚洲18禁| 欧美综合国产精品久久丁香| 女人一区| 91人妻做a观看视频| 97欧美色综合| 国产高潮AA片免费看| 国产美女高潮视频| 久久本道| 尤物黄色在线观看网站| 舔人妻中文免费视频| 精品人妻美妇91job| 久久久久久久久9| 偷拍 精品另类 凸凹了四区| 人妻另类 专区 欧美 制服| 精品人妻夜夜草| 色黄色美女大长腿午夜视频| 欧美后入式| 日韩美一区| 亚川综合视频| 国产免费小视频| 日韩在线AB| 成人性爱av.com| 亚洲精品熟妇1区2区3区。| 六六久久日韩不卡| 日韩黄片视频试看| 黑人在线91| 熟女自慰久久久| www国产天美久久久| 超碰在线免费一区二区三区| 色九月综合| 亚洲精品日日夜夜52| 九九九九国产| 青青草五月份天| 一区二区三区四区五区高清无码永久视频| 亚洲欧美综合区自拍另类 | a男人的天堂久久一级A毛片| 无码人妻系列少妇| 国产亚洲色停停久久99精品91| 欧美精品 - 91爱爱| 极品极品色影院| 国产强奸乱伦欧美| 亚洲午夜精品久久久中文影院| 白丝1区2区3区| 久久久久久AⅤ无码免费肉站| 东京热男人的天堂| 人伦四五区| 久久国99999| 免费观看有码高清视频| 国产中文字幕曰本毛片| 日韩欧美操逼xxx| 啊啊啊爽爽| 日本性一区| 午夜啊啊啊| 久久久精品国产亚洲伊人| 夜夜影视四色| 日本操逼视频导航| 东京热视频网| 综合另类| 屁股久久久久久| 蜜臀久久99精品久久久久久成人小说 | 97超碰国产精品| 伊人久久大香大香线蕉中文| 国产精品人妻熟女aⅴ| 91色综合| 精品无码秘 人妻一区二区| 欧美肥臀在线| 少妇久久久免费| 久久国语| 亚洲资源网| 97日视频| 欧美曰韩国产精品| 91性生活久久久| 亚洲综合性感在线| 久久一区,青青青青草视频在线播放| 色婷婷亚洲婷婷| 大香蕉婷婷| 欧美se综合| 亚洲欧美校园| 久久久三区二区一区| 乱操9999| 国产91 丝袜在线播放| 男人的天堂免费| 熟妇女伦乱视频| 好吊色综合| 亚洲精品97| 五码视频在线观看| 97在线视频观看网站| 三级特黄60分钟播放| 久久这里是精品| 91操人| 97人妻碰碰中文无码久热丝袜| 色婷婷电影网| 欧亚乱色熟一区二区三四区| 91色爽欧美| 欧美色图人妻| 嗯嗯不要 视频| 日韩亚洲欧美中文字幕| 超清福利精品视频在线| 99re公开精品免费视频| 国产呦精品一区二区三区下载| 午夜免费福利视频一区| 日本 成 人 小说 电影 一区二区| 久久9精品视频| 伊人玖玖网| 一二三卡欧美日韩人妻免费精品| 国产白丝AV| 亚洲欧美国产中文视频| AV免费在线播放一区| 亚洲综合成人网| 国产少妇与亚洲av| 青青伊人久久| 亚洲国产天堂| 2017人人操,人人摸| 国产成人www免费人成看片| h在线看免费版在线看| 旡码电影特区| 中文字幕伊人| 久久在线观看免费视频 | 日韩不卡网操逼中文字幕日韩| 久久精品人妻一区二区三区| 秋霞色色影院| 99热在线观看| 75大香蕉| 日韩有码专区| 在线观看亚洲专区| 91久青| 久久久一二三四区| 国产一区免费午夜视频| 天天爱天天操| 国产精品在线一区二区| 日本一区二区亚洲综合| 女人爽到高潮潮喷18禁网站| 精品97久久综合| 九九九网站| 91成人久久| 九九十八精品| 亚洲另类春色| 久操精品网| 60秒免费小视频| 亚洲国产97| 欧美日韩第一页| 日本淫穴在线| 国产高清视频无码在线| 天天综合91在线| 色偷偷综合91久久噜噜| 波多野42部无码喷潮在线观看 | 97在线免费看视频| 国内精品伊人久久久久影院会| 亚洲www91| 国产精品不卡一区二区电影| 亚州伊人色综台| 欧中美三级一区二区三区| 天天搞在线综合网| 先锋音影AV| 黄色大片免费在线| 欧美中文字幕一区| 在线日韩日本亚洲国产| 久久久久久久极品香蕉视频| 精品国产乱码久久久A| 国产又操| 校园春色美腿丝袜| 亚洲精品精品一区二区| 午夜精品久久久99热蜜桃的功能特点| 欧美日韩不卡a片| 狠狠热这里都是精品| 视频国产成人精品日本亚洲18| 日韩免费人妻色情网站| 久久久久久久9| 屌逼麻豆| 在线视频97| 日韩影片中文字幕一区二区三区| 亚洲色欧美| 欧美日韩国产中文精品字幕自在自线,| 欧美男人的天堂| 婷婷综合激情| 俞拍久久国应视频| 欧美综合骚| 热思思免费视频| 射欧美综合| 国产一区自拍欧美日韩| 亚洲污污网站| 欧美十八禁在线看| 久草资源在线| 91黑丝少妇| 五月天久久综合网| 囯产精品强| 亚洲中文字幕精品久久久久久直播| 久久婷婷一区| 花野真衣| 51久久夜色精品国产麻豆| 欧美猛交黑寡妇中文字幕| 特级丰满少妇一级AAAA爱毛片| 疯操AV| 亚洲日韩一区电影| 99亚洲国产精品色一区二区三区| 啊啊啊好大好湿| 国产一区二区三区导航| 国内一级精品| 78久久久| 另类专区在线观看| 日韩兔费看黄片| 日本东京热大香蕉a片| 免费啪啪啪网站18岁| 天天做天天爱| 青青青艹在线视频| 五月婷视频| 情趣丝袜无码操逼视频| 大香蕉日亚洲日本亚大 | 久久超碰网| 欧美变态激情网| 色婷婷丁香五月天| 久久免费99精品久久久久久| 久草老司机| 成人精品电影| 综合久久欧美| 欧美成年人性爱视频免费观看| 日韩三级性| 久久久影院| 国产一区二区三区导航| 热99这里有精品综合久久 | 国产高清亚洲日韩一区| 后入式999| 99re69| 水野优香在线观看| 粉嫩粉嫩一区性色AV片| 九九九久久久| 91美女视频直播| 国产精品久久久777| 无码99| 国产超碰人人爽人人做| 88xx成人精品视频| 欧综合网| 亚洲精品九九九九九九| 97超碰色屌| 97色伦欧美| 国产在线精品偷| 中国zzijzzijzzwww精品| 91无遮挡| 九九九九AV| 后入综合久久| 丰满人妻一区| 97国产天堂岛| 人妻精品4K4K4K4K4| 人妻激情偷乱视频一区二区三区 | 欧美色天堂网在线视频| 天天淫人人妻日日色| www.色操逼| 高跟丝袜AV专区国产| 午夜福利1区2区3区| 九九九九精品九九九九| 欧美激情1区| 国产精品另类| 91狠狠狠| 久久久一二三四区| 99精品综合久久久久五月天| av草草在线电影| 色五月激情AV在线| 超碰日韩美妻| 亚洲欧美国产其他二区| 少妇干B| 久久成人午夜精品影院 | 偷拍五区| 亚洲日韩欧美一区二区| 欧美色图 人妻| 亚洲综合九| 欧美青青视频| 中出后入| 伊人9| 黑人性暴力毛片| 中文字幕一区二区三区人妻不卡| 国产国产亚洲一二三久久| 天天综合,91入口| 国产蜜臀精品一区二区尤物| 久久亚洲日韩熟女精品| 欧美性爱一区二区三区| 欧成人精品H无码| 五月亭亭六月丁香| 青娱乐福利99| 天天色,天天干,天天干| 亚洲成a人在线观看久| 激情五月天社区| 色五月激情综合网| 国产欧美美女免费观看视频| 欧美熟妇人体| 人妻无码视频一区二区三区久久| 激情文学亚洲| 91久久| 岛国毛片在线观看免费| 乱伦av.com| 国产亚洲99久久精品| 欧亚洲精品有视频| 久久一二三四不卡 | 国产高清1234区| 一区二区 日韩 欧美 国产 传媒| 久久夜精品一区二区三区| 国产乱不卡| 亚洲欧美综合| av网页一区二区三区| 丁香五月偷拍| 91九九九小逼| 日韩欧美麻豆 | 久久人妻一区二区三区高清 | 亚洲国产熟妇综合色专区| 91香蕉国产尤物视频| 少妇人妻太紧太深av| 丁香九月激情| 青青草啪啪网| 97久久久久| 中文字幕,人妻,日韩| 欧美日韩性爱精品| 五月天伊人| 天堂亚洲精品| 26uuu性| 国产剧情一区在线观看| 91超碰碰在线| 亚欧色图在线激情| 久久久夜夜嗨免费视频| 亚洲综合图文| 久久激情婷婷| 日本国产欧美高清在线| 91新在线欧美| 国产97视频| 日韩少妇一区二区三区| 久久夜色一区二区| 高清孕妇孕交 交| 亚洲成人福利电影免费| 5252色欧美在线| 偷拍视频青青草在线视频| 一本一道波多野毛片中文在线| 四虎影视在线| 啊啊啊啊免费视频| 无色无码| 超碰天天操| 乱伦一二三区| 精品熟女一区=区三区| 97神马久久| 亚洲精品美女久久久久久久久| 夜夜国产一区| 综合伊人网12色| 禁片 高清 在线观看视频网站| 99精品综合久久久久五月天| 久久五月天婷婷丁香中文字幕| 国产在线不卡导航| 色婷婷一区二区三区久久| 韩国一级做A片免费的| 97一区二区三区视频| 性色AV网站| 97操97色| 一区二区乱码福利| 77777亚洲蜜臀精品久久综合蜜臀| AV天堂因数| 亚洲精品久久久久久久蜜桃臀| 国产精品午夜福利视频| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 九九色综合| 人妻熟妇一区二区三区| 国产欧美一区激情交| 蜜臀va69| 超碰人人在线| 97资源站日韩| 91色综| 亚洲天堂精品日韩电影| 久久熟女人| 强奸乱伦 亚洲一区| 97精品一二区| 欧美岛国精品在线观看| 开心六月色| 久久久精品中文字幕爱豆| 有码人妻系列| 另类TS人妖一区二区三区| 99国产精品免费| 在线综合色| 美女上床网站| 五月天综合在线| 国产精品久久久 | 偷拍2020| 亚卅熟女乱色| 大香蕉久久| oumeisetupian| 日韩av不卡在线看| 骚妻少妇精品性色无码四色A V| a在线视频免费观看| 久久久久99999| 成人日韩中文字幕| 青青久久手机线视频| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 97精品国产手机| 91干熟女| 久久一区二区三区四区五区| 欧美激情超碰777| 午夜寂寞欧美| 亚洲在线a| 热久日综合| 六月丁香婷| CCYY草草影院地址入口| 亚洲无线码一区国产欧美国| 我想要 啊 啊 啊| 丝袜视频一区二区在线播放国产中文| 免费A V在线播放| 91精片| 天堂精品| 天天弄欧美| 色99视频| 天天狠操| 欧美黑人熟妇精品91| 婷婷另类小说| 99视频内射三四| 亚洲啪AⅤ永久无码| 色网亚洲人| 久久內射| 99婷婷| 性久久| 91操熟女| 亚洲日韩97| 超碰97玖玖爱| 嗯嗯啊中文字幕| 全免费a敌肛交毛片免费| 亚州综合| 综合网亚洲在线| 美女诱惑在线一区| 男人的天堂在线有码| 国产精品宅男免费| 日韩福利综合一区| 草草草草视频| 美女91网址| julia中文字幕在线观看| 欧州色图区| 91黑人无码激情在线| 一级岛国大片| 精品少妇999| 999国产精品999久久久久久| 中文字幕神马久久| 蜜伊人色综合97| 九色97| 97色婷| 欧美在线观看综合国产| 北约熟女超碰| 国产偷拍网站| 日韩一级二级三级在线不卡观看完整| 国产欧美日产一区二区三区 - 国产欧美日| 中文字幕精品丝袜| 天美av在线观看| 久久女婷| 欧美婷婷五月天| aaaa黄片| 国产尤物AV尤物在线观看不卡| 久久精品国产99精品亚洲蜜...| 日本成人在线不卡一区二区三区 | 亚洲欧洲无码bt精品合集| 欧美AB在线| 国产熟女无套内射| 欧美翘臀视频网站一区二区三区| 亚洲图片视频小说| 桑老女人九区| 日本高清视频在线观看黄已三辽| 97欧美色综合| 2020中文字幕在线| 超碰9 7女人| 激情色播| 色婷婷电影| 色色99| 屌色在线97视频| 天天日天天舔天天喷天天射| 激情综合五| 这里只有精品视频| 91爱综合| 亚洲91亚洲| 97超碰色屌| 做爱福利视频一区二区| 亚洲精品 欧美精品| 日本精品九九九| 天天碰久久入| 亚洲男人天堂AV| 亚洲一级黄色毛片| 中文字幕AV乱伦| 色黄色美女大长腿午夜视频| 91天堂色男人的天堂| 97啪啪| 无码欧美有限公司| 欧美国产一区二区三区麻豆传媒| 欧美猛交黑寡妇中文字幕| 久久综合久色欧美综合狠狠 | 岛国免费黄色网址| 精品性爱一区二区| 亚洲精品色| 人妻密肉在线观看| 日日噜噜夜夜久久亚洲一区二区| 啊啊啊啊在线播放| 成人性交免费视频| 日韩高清黄片| 欧美性爱伊人| 大香蕉在线视频15| 亚洲综合性网址| 亚洲中文字幕av | 色97干| 无码外流操逼视频| 另类专区在线观看| 欧美天天谢综合网| 人妻无码一区二区三区久久99| 欧美激情区| 日韩操逼性鲍| 国产欧美一区激情交| 精品久久久久瑟瑟| 少好三P| 人妻色偷色噜| 久久精品国产免费观看99| 韩国女主播青草福利视频| 欧美色图97| WWW.操逼.COM| 综合欧美日本三级| 99爱久久视频频| 人妻人久久精品中文字幕| 夜草网站| 成片免费播放| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 久久无码电影| 日本淫色网| 亚洲天堂一二| 欧美综合娱乐久久| 性欧美另类高清| 青青草中出视频| 欧美人人曰人人操人人射射| 六月激情网| 97av,com| 五十路六十路七十路熟婆| 99热在线播放| 劲爆欧美人妖三区91| 麻豆国产97在线| 婷婷激情五月| 久久久成人免费av电影| 日韩欧美午夜一区二区| 男人的天堂2010| 偷拍亚洲情色| 一区二区三区黄片免费观看| 国产无遮挡| 精品人妻av区天天看片| 影音先锋国产精品| 啊啊啊不要嗯嗯在线观看| 99久久精品欧美国产| 91neishe| 熟妇一区二区| 久久综合九九| 日日爽熟女| 黄片免费久久久久久久| 亚洲美女色图| 亚洲成aⅴ人片不卡无码| 超碰久久性爱| 91成人无码| 天天日天天插| 精品久久97| 色吧五月| 加勒比综合88| 99色综合| 91欧美色| 日韩精品一二三四| 亚洲资源站| 日本91白丝| 97精品视频| 久久99国产综合精品女同| 午夜爽爽爽| 日韩美一区| 国产精品不卡高清在线观看| 亚洲 欧美 中文 日韩超碰| 青娱乐啪啪视频| 偷拍欧美综合| 国产综合色精品在线观看| 91在线美女| 超碰精品国产无码| 久久精9| 久久av成人无码免费| 嗯~啊~轻一点 视频| 婷婷五月天影院| 男人的天堂视频精品乱在线| 五月天婷婷综合| 试看60秒 爽| 97欧美精品综合| 日韩精品在线观看观看| 学生妹天天看| 国产成人网站在线观看| 久久老熟女| 久久天天摸| 操操操五月天婷婷丁香影院| 天天综合网1| AV免费在线播放一区| 亚洲精品熟妇1区2区3区。| 开心五月婷婷| 91被操| 丰满人妻一区| www.激情| 欧美熟妇成人一区二区| 熟女网站最新| 99久久9| 国产免费黄色一级大片| 久久这里| 99精品久久| 乱操乱伦AV| 国产91丝袜在线播放蜜月| 97色碰| 99蜜桃臀久久久欧美精品网站| 亚洲强奸乱伦影视网| 啊啊啊久久| 亚熟hd视频在线| 成人精品在线观看| 一级性爱视频免费在线| 九九九九97| 爱射综合| 一区二区影院| 96久久久| 日本天天干天天日一区| 久草成人福利导航| 污污汅18禁网站在线永久免费观看 | 999国产精品999久久久久久| 久久久久久亚洲精品中文字幕人妻| 思思热国产在线视频| 96一区二区| 91N综合在线| 日韩精品一二三四| 伊人久久综合精品欧美| 国产精品操| 夜夜做夜夜爽精品视频| 亚洲少妇诱惑| 欧美日韩91| 东北丰满熟女国产一区| 大香蕉一级黄色片久久| 久久久九九| 天天夜夜久久| 欧美黄页在线| 日韩黄色成人性爱| av最新免费中文字幕| 五月丁香激情四射| 99在线精品观看视频中文| 美女诱惑在线一区| 800zy一区二区| 久久香蕉影院| 日韩欧美俄罗斯A片| 两女互慰AV高潮喷水在线观看| 久久人妻熟女一区二区| 后入式999| 欧美一级专区免费大片| 蜜臀亚洲中文| 91 亚洲 欧洲| 色色五月丁香| 留下AⅤ黄色片| 黄色一区二区秘书性感| 搡老熟女免费视频| 大香蕉中文在线| 清纯唯美综合亚洲| 亚洲国产中文字幕| 天天综合网1| 91欧美成人色站| 97精品国产97久久久久久户外免费| 婷婷在线视频| 成人午夜无码视频| 成人三级片无码| 91成人精品在线播放| 国产99精品一区二区三区免费| 91在线精品一区二区三区| 午夜美女福利视频| 大色综合| 欧美日韩插逼视频| 搡老女人老91二区| 国产av色网| 欧美亚洲se91| 岛国黄色大片网站| 午夜视频好爽啊| 日韩熟女操逼| 日本性爱视频一级| 放黄片放3级黄片没穿衣服| 久久9精品| 熟女91网站| 91老司机视频| 精品999一区二区| 91丝袜| 成人羞羞视频国产| 在线视频亚洲无码| 国产无码精品成人| 国产高清吃奶免费视频网站| 2017人人操,人人摸| 久久九九视频九九视频|