欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

ESP32-S3驅(qū)動74系列SPI顯示屏:從原理到FreeRTOS實戰(zhàn)

ESP32-S3驅(qū)動74系列SPI顯示屏:從原理到FreeRTOS實戰(zhàn) 大家好我是專注于嵌入式開發(fā)的技術(shù)博主。在物聯(lián)網(wǎng)項目中驅(qū)動一塊顯示屏往往是交互功能的第一步。你是否遇到過這樣的困惑網(wǎng)上購買的顯示屏模塊型號五花八門比如“0.96寸 OLED”、“1.8寸 TFT”但驅(qū)動接口卻常常標注為“SPI”甚至有些模塊直接以“74”開頭命名。這“74”究竟是什么意思它和SPI又有什么關(guān)系更重要的是如何在我們強大的ESP32-S3開發(fā)板上基于最新的ESP-IDF框架配合FreeRTOS實時操作系統(tǒng)穩(wěn)定、高效地驅(qū)動這類顯示屏呢本文將為你徹底解開“74”系列SPI顯示屏模塊的命名之謎并提供一個從零開始的完整實戰(zhàn)教程。我們將基于ESP-IDF 5.x兼容未來版本和FreeRTOS使用C語言編寫驅(qū)動代碼最終實現(xiàn)一個能夠顯示動態(tài)信息的嵌入式AI物聯(lián)網(wǎng)項目雛形。無論你是剛接觸ESP32的新手還是希望將顯示功能集成到復雜項目中的開發(fā)者都能從本文中找到清晰的路徑和可復用的代碼。1. “74”之謎SPI顯示屏模塊命名解析與核心概念在開始動手之前我們首先要弄清楚“74”這個前綴的含義。這并非隨意編號而是源于一個非常經(jīng)典的集成電路家族。1.1 “74”系列邏輯芯片顯示屏驅(qū)動的幕后功臣“74”系列是指74HC、74LS、74HCT等通用邏輯集成電路家族。在早期的數(shù)字電路和單片機系統(tǒng)中它們被廣泛用于實現(xiàn)邏輯門、觸發(fā)器、鎖存器、移位寄存器等功能。在SPI顯示屏模塊尤其是早期或一些特定型號的OLED、TFT屏中“74”通常指代模塊上集成的一顆74HC595芯片。這是一顆8位串行輸入、并行輸出的移位寄存器。它的核心作用在于擴展IO口。為什么需要擴展IO單片機如早期的51、AVR甚至ESP32的某些GPIO緊張場景的GPIO數(shù)量有限。而一個顯示屏需要控制的數(shù)據(jù)線D0-D7、命令/數(shù)據(jù)選擇線DC、復位線RST等會占用大量引腳。74HC595如何工作它通過SPI或類似SPI的3線串行接口接收來自單片機串行數(shù)據(jù)然后在內(nèi)部移位最終通過8個并行引腳輸出。這樣單片機僅用2-3個引腳數(shù)據(jù)、時鐘、鎖存就能控制8個甚至更多通過級聯(lián)的輸出信號極大地節(jié)省了GPIO資源。因此當你看到“74 SPI顯示屏模塊”時很大程度上意味著這個顯示屏模塊板載了74HC595或其他74系列芯片用于將單片機SPI接口的串行數(shù)據(jù)轉(zhuǎn)換為控制顯示屏所需的并行信號。模塊已經(jīng)幫你做好了這部分電路你只需要用標準的SPI接口去驅(qū)動它即可無需關(guān)心底層并轉(zhuǎn)串的細節(jié)。1.2 SPI協(xié)議顯示屏通信的“高速公路”SPISerial Peripheral Interface是一種高速、全雙工、同步的串行通信協(xié)議。它是單片機與外圍設(shè)備如傳感器、存儲器、顯示屏通信的基石之一。對于顯示屏驅(qū)動理解SPI的以下關(guān)鍵點至關(guān)重要四線制基礎(chǔ)SCLK (Serial Clock)時鐘線由主機ESP32-S3產(chǎn)生用于同步數(shù)據(jù)位。MOSI (Master Out Slave In)主機輸出從機輸入。ESP32-S3通過這根線向顯示屏發(fā)送命令和數(shù)據(jù)。MISO (Master In Slave Out)主機輸入從機輸出。但絕大多數(shù)純顯示型SPI模塊如本文討論的不需要向主機回傳數(shù)據(jù)因此這根線常常被省略或標記為NC不連接。這就是所謂的“3線SPI”模式SCLK, MOSI, CS。CS (Chip Select)片選線低電平有效。用于在多個SPI設(shè)備共享總線時選擇當前要通信的從設(shè)備。SPI模式 (CPOL與CPHA)這是SPI配置的核心決定了時鐘極性和相位。不同的顯示屏控制器如ST7735、ILI9341要求特定的SPI模式常見為Mode 0或Mode 3。配置錯誤會導致顯示亂碼或無顯示。CPOL0:時鐘空閑時為低電平。CPOL1:時鐘空閑時為高電平。CPHA0:數(shù)據(jù)在時鐘的第一個邊沿上升沿或下降沿采樣。CPHA1:數(shù)據(jù)在時鐘的第二個邊沿采樣。DC (Data/Command) 引腳這是一個非SPI標準但至關(guān)重要的引腳。它告訴顯示屏控制器當前通過MOSI發(fā)送的是命令如設(shè)置顯示區(qū)域、亮度還是顯示數(shù)據(jù)實際的像素顏色值。通常DC0表示命令DC1表示數(shù)據(jù)。小結(jié)“74”模塊簡化了硬件連接而SPI協(xié)議定義了通信規(guī)則。我們的任務(wù)就是在ESP32-S3上正確配置SPI主機并按照顯示屏控制器的手冊時序通過SPI總線發(fā)送正確的命令和數(shù)據(jù)流。2. 環(huán)境準備ESP-IDF與開發(fā)環(huán)境搭建工欲善其事必先利其器。在編寫代碼前我們需要一個穩(wěn)定的開發(fā)環(huán)境。2.1 硬件清單主控ESP32-S3開發(fā)板如ESP32-S3-DevKitC-1顯示屏一款支持SPI接口的顯示屏模塊例如1.8寸TFT驅(qū)動芯片為ST7735S分辨率128x160。請確認其引腳定義。連接線杜邦線若干。USB數(shù)據(jù)線用于供電和程序燒錄。2.2 軟件環(huán)境安裝ESP-IDFEspressif官方提供了多種安裝方式。對于新手和追求穩(wěn)定性的開發(fā)者推薦使用ESP-IDF Eclipse插件或VSCode ESP-IDF擴展。這里以VSCode為例簡述流程安裝VSCode從官網(wǎng)下載安裝。安裝ESP-IDF擴展在VSCode擴展商店搜索“Espressif IDF”由Espressif Systems官方發(fā)布點擊安裝。通過擴展安裝ESP-IDF安裝擴展后按F1打開命令面板輸入 “ESP-IDF: Configure ESP-IDF extension”選擇 “Advanced” 安裝方式。在安裝器界面選擇你需要的ESP-IDF版本推薦選擇最新的穩(wěn)定版如v5.4.x并設(shè)置安裝路徑。工具鏈編譯器、調(diào)試器等會自動下載。驗證安裝安裝完成后新建一個終端輸入idf.py --version和xtensa-esp32s3-elf-gcc --version如果能正確顯示版本信息則環(huán)境搭建成功。注意如果遇到“a fatal error occurred: failed to connect to esp32-s3: invalid head of packet”等連接錯誤請檢查開發(fā)板是否正確連接端口是否被占用。是否按住了開發(fā)板上的“Boot”按鈕再點擊“Upload”。驅(qū)動程序是否安裝CP210x或CH340。2.3 創(chuàng)建第一個項目在VSCode中按F1輸入 “ESP-IDF: Show Examples Projects”。選擇一個簡單的示例如hello_world創(chuàng)建到本地目錄。編譯并燒錄到ESP32-S3確?;A(chǔ)開發(fā)流程暢通。3. 項目實戰(zhàn)驅(qū)動SPI顯示屏模塊假設(shè)我們使用的是一塊常見的1.8寸SPI TFT屏驅(qū)動芯片為ST7735S。我們將創(chuàng)建一個獨立的項目來驅(qū)動它。3.1 硬件連接根據(jù)你的顯示屏模塊引腳定義連接到ESP32-S3。以下是一個常見的連接示例請務(wù)必以你的屏幕手冊為準顯示屏引腳ESP32-S3 GPIO功能說明VCC3.3V電源切勿接5VGNDGND地SCLGPIO 12SPI時鐘線 (SCLK)SDAGPIO 11SPI數(shù)據(jù)線 (MOSI)RESGPIO 10復位線 (RST)DCGPIO 9命令/數(shù)據(jù)選擇線 (DC)CSGPIO 8片選線 (CS)BLKGPIO 7 (或 3.3V)背光控制可選接GPIO可調(diào)光為什么選擇這些GPIOESP32-S3的多數(shù)GPIO都可用作SPI引腳但有些是專用SPI引腳如SPI2的默認引腳。我們這里使用GPIO 11, 12, 13等需要在軟件中配置為SPI功能。避免使用 Strapping 引腳如GPIO0。3.2 項目結(jié)構(gòu)與配置新建項目在VSCode中使用ESP-IDF擴展創(chuàng)建新項目命名為esp32s3_spi_display。修改CMakeLists.txt主目錄下的CMakeLists.txt通常無需大改。確保包含了main組件。配置SPI主機我們將使用ESP-IDF的SPI Master驅(qū)動。無需額外組件驅(qū)動已內(nèi)置。3.3 編寫顯示屏驅(qū)動代碼我們將代碼組織在main目錄下。第一步創(chuàng)建頭文件spi_display.h// spi_display.h #ifndef SPI_DISPLAY_H #define SPI_DISPLAY_H #include “driver/spi_master.h” #include “freertos/FreeRTOS.h” #include “freertos/task.h” // 顯示屏物理參數(shù) #define DISPLAY_WIDTH 128 #define DISPLAY_HEIGHT 160 // 顏色定義 (RGB565格式) #define COLOR_BLACK 0x0000 #define COLOR_WHITE 0xFFFF #define COLOR_RED 0xF800 #define COLOR_GREEN 0x07E0 #define COLOR_BLUE 0x001F #define COLOR_YELLOW 0xFFE0 // 函數(shù)聲明 esp_err_t display_init(void); void display_draw_pixel(uint16_t x, uint16_t y, uint16_t color); void display_draw_fill_rect(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color); void display_draw_char(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg_color); void display_draw_string(uint16_t x, uint16_t y, const char *str, uint16_t color, uint16_t bg_color); void display_clear(uint16_t color); void display_test_pattern(void); #endif // SPI_DISPLAY_H第二步實現(xiàn)驅(qū)動源文件spi_display.c這是核心包含了SPI初始化和ST7735S的底層命令。// spi_display.c #include “spi_display.h” #include “driver/gpio.h” #include “esp_log.h” static const char *TAG “DISPLAY”; // SPI設(shè)備句柄和引腳定義 static spi_device_handle_t spi; #define PIN_NUM_MOSI 11 #define PIN_NUM_SCLK 12 #define PIN_NUM_CS 8 #define PIN_NUM_DC 9 #define PIN_NUM_RST 10 #define PIN_NUM_BLK 7 // 向顯示屏發(fā)送命令DC0 static void send_cmd(uint8_t cmd) { esp_err_t ret; spi_transaction_t t { .length 8, // 命令長度為8位 .tx_buffer cmd, }; gpio_set_level(PIN_NUM_DC, 0); // DC線拉低表示發(fā)送命令 ret spi_device_polling_transmit(spi, t); // 阻塞式傳輸 assert(ret ESP_OK); } // 向顯示屏發(fā)送數(shù)據(jù)DC1 static void send_data(uint8_t *data, uint16_t len) { esp_err_t ret; if (len 0) return; spi_transaction_t t { .length len * 8, // 數(shù)據(jù)長度位 .tx_buffer data, }; gpio_set_level(PIN_NUM_DC, 1); // DC線拉高表示發(fā)送數(shù)據(jù) ret spi_device_polling_transmit(spi, t); assert(ret ESP_OK); } // 初始化SPI總線及設(shè)備 static void spi_init(void) { esp_err_t ret; spi_bus_config_t bus_cfg { .mosi_io_num PIN_NUM_MOSI, .miso_io_num -1, // 我們不需要MISO .sclk_io_num PIN_NUM_SCLK, .quadwp_io_num -1, .quadhd_io_num -1, .max_transfer_sz DISPLAY_WIDTH * DISPLAY_HEIGHT * 2, // 緩沖區(qū)大小RGB565每個像素2字節(jié) }; // 初始化SPI總線使用SPI2_HOSTESP32-S3有多個SPI主機 ret spi_bus_initialize(SPI2_HOST, bus_cfg, SPI_DMA_CH_AUTO); ESP_ERROR_CHECK(ret); spi_device_interface_config_t dev_cfg { .clock_speed_hz 40 * 1000 * 1000, // SPI時鐘頻率40MHz可根據(jù)屏幕調(diào)整 .mode 0, // SPI模式0CPOL0CPHA0ST7735S常用 .spics_io_num PIN_NUM_CS, .queue_size 7, // 事務(wù)隊列大小 .flags SPI_DEVICE_NO_DUMMY, // 某些屏需要Dummy位ST7735S通常不需要 }; // 將SPI設(shè)備連接到總線上 ret spi_bus_add_device(SPI2_HOST, dev_cfg, spi); ESP_ERROR_CHECK(ret); ESP_LOGI(TAG, “SPI initialized.”); } // 初始化GPIODC, RST, BLK static void gpio_init(void) { gpio_config_t io_conf {}; // 配置DC、RST、BLK為輸出模式 io_conf.pin_bit_mask (1ULL PIN_NUM_DC) | (1ULL PIN_NUM_RST) | (1ULL PIN_NUM_BLK); io_conf.mode GPIO_MODE_OUTPUT; io_conf.pull_up_en GPIO_PULLUP_DISABLE; io_conf.pull_down_en GPIO_PULLDOWN_DISABLE; io_conf.intr_type GPIO_INTR_DISABLE; gpio_config(io_conf); gpio_set_level(PIN_NUM_BLK, 1); // 默認打開背光 gpio_set_level(PIN_NUM_RST, 1); // 先拉高復位引腳 vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(PIN_NUM_RST, 0); // 復位脈沖 vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(PIN_NUM_RST, 1); // 結(jié)束復位 vTaskDelay(pdMS_TO_TICKS(120)); // 等待屏幕自檢就緒 ESP_LOGI(TAG, “GPIO and hardware reset done.”); } // 發(fā)送ST7735S初始化命令序列 static void st7735s_init(void) { // 以下命令序列需要參考ST7735S數(shù)據(jù)手冊不同屏幕可能略有差異 send_cmd(0x01); // Software reset vTaskDelay(pdMS_TO_TICKS(150)); send_cmd(0x11); // Sleep out vTaskDelay(pdMS_TO_TICKS(255)); send_cmd(0x3A); // Interface Pixel Format uint8_t data_format[] {0x05}; // 16 bits/pixel (RGB565) send_data(data_format, sizeof(data_format)); send_cmd(0x36); // Memory Data Access Control uint8_t madctl[] {0x08}; // 設(shè)置掃描方向等根據(jù)你的屏幕安裝方向調(diào)整 send_data(madctl, sizeof(madctl)); send_cmd(0x29); // Display ON vTaskDelay(pdMS_TO_TICKS(255)); ESP_LOGI(TAG, “ST7735S init sequence sent.”); } // 公共API初始化整個顯示屏 esp_err_t display_init(void) { gpio_init(); spi_init(); st7735s_init(); display_clear(COLOR_BLACK); ESP_LOGI(TAG, “Display initialization complete.”); return ESP_OK; } // 設(shè)置繪圖窗口用于優(yōu)化連續(xù)像素繪制 static void set_window(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { send_cmd(0x2A); // Column Address Set uint8_t col_data[] {x0 8, x0 0xFF, x1 8, x1 0xFF}; send_data(col_data, sizeof(col_data)); send_cmd(0x2B); // Row Address Set uint8_t row_data[] {y0 8, y0 0xFF, y1 8, y1 0xFF}; send_data(row_data, sizeof(row_data)); send_cmd(0x2C); // Memory Write } // 繪制一個像素點 void display_draw_pixel(uint16_t x, uint16_t y, uint16_t color) { if (x DISPLAY_WIDTH || y DISPLAY_HEIGHT) return; set_window(x, y, x, y); uint8_t color_data[] {color 8, color 0xFF}; send_data(color_data, sizeof(color_data)); } // 填充一個矩形區(qū)域 void display_draw_fill_rect(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color) { if ((x w) DISPLAY_WIDTH || (y h) DISPLAY_HEIGHT) return; set_window(x, y, x w - 1, y h - 1); uint32_t total_pixels w * h; // 為了一次性發(fā)送所有數(shù)據(jù)需要動態(tài)分配緩沖區(qū)對于大區(qū)域注意堆棧大小 uint8_t *buffer heap_caps_malloc(total_pixels * 2, MALLOC_CAP_DMA); // 使用DMA兼容內(nèi)存 if (!buffer) { ESP_LOGE(TAG, “Failed to allocate buffer for rect fill!”); return; } for (uint32_t i 0; i total_pixels; i) { buffer[i * 2] color 8; buffer[i * 2 1] color 0xFF; } send_data(buffer, total_pixels * 2); free(buffer); } // 清屏 void display_clear(uint16_t color) { display_draw_fill_rect(0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT, color); } // 簡單的測試圖案 void display_test_pattern(void) { display_clear(COLOR_BLACK); display_draw_fill_rect(10, 10, 30, 30, COLOR_RED); display_draw_fill_rect(50, 10, 30, 30, COLOR_GREEN); display_draw_fill_rect(90, 10, 30, 30, COLOR_BLUE); display_draw_fill_rect(10, 60, 108, 40, COLOR_YELLOW); // 可以添加畫線、畫圓等更復雜的圖形函數(shù) }第三步編寫主程序main.c// main.c #include stdio.h #include “freertos/FreeRTOS.h” #include “freertos/task.h” #include “esp_log.h” #include “spi_display.h” static const char *TAG “MAIN”; void app_main(void) { ESP_LOGI(TAG, “Application started!”); // 1. 初始化顯示屏 esp_err_t ret display_init(); if (ret ! ESP_OK) { ESP_LOGE(TAG, “Display init failed!”); return; } // 2. 顯示測試圖案 display_test_pattern(); vTaskDelay(pdMS_TO_TICKS(2000)); // 顯示2秒 // 3. 清屏并顯示歡迎信息需要實現(xiàn)字符和字符串函數(shù) display_clear(COLOR_BLACK); // 假設(shè)我們已經(jīng)實現(xiàn)了 display_draw_string 函數(shù) // display_draw_string(20, 70, “Hello ESP32-S3!”, COLOR_WHITE, COLOR_BLACK); // 為了演示我們畫一些色塊 for (int i 0; i 5; i) { display_draw_fill_rect(20 i*20, 70, 15, 15, COLOR_GREEN); vTaskDelay(pdMS_TO_TICKS(500)); } ESP_LOGI(TAG, “Display demo finished. Entering loop...”); // 4. 主循環(huán)可以在此處更新顯示內(nèi)容如傳感器數(shù)據(jù)、時間等 int counter 0; while (1) { // 動態(tài)更新顯示區(qū)域的示例 display_draw_fill_rect(0, 130, DISPLAY_WIDTH, 30, COLOR_BLACK); // 清空底部區(qū)域 // 此處可以調(diào)用顯示文本的函數(shù)來顯示計數(shù)器的值 // display_draw_string(10, 140, “Count:”, COLOR_WHITE, COLOR_BLACK); // display_draw_number(...); // 需要實現(xiàn)數(shù)字顯示函數(shù) counter; vTaskDelay(pdMS_TO_TICKS(1000)); // 每秒更新一次 if (counter 60) break; // 示例運行一分鐘 } ESP_LOGI(TAG, “Demo loop ended.”); }3.4 編譯、燒錄與監(jiān)視選擇目標芯片在VSCode底部狀態(tài)欄點擊 “ESP-IDF: Device Target”選擇esp32s3。選擇串口點擊 “ESP-IDF: Select port to use”選擇你的開發(fā)板對應(yīng)的串口。編譯點擊側(cè)邊欄的 “編譯” 按鈕或按CtrlE, B。燒錄點擊 “燒錄” 按鈕或按CtrlE, F。監(jiān)視點擊 “監(jiān)視器” 按鈕或按CtrlE, M查看串口日志。如果一切順利你將看到顯示屏先顯示紅綠藍黃四個色塊然后底部有綠色方塊依次出現(xiàn)最后進入計數(shù)循環(huán)目前僅體現(xiàn)在串口日志中。4. 集成FreeRTOS創(chuàng)建顯示刷新任務(wù)在物聯(lián)網(wǎng)項目中顯示更新不應(yīng)阻塞主循環(huán)或其他任務(wù)如網(wǎng)絡(luò)通信、傳感器讀取。FreeRTOS可以幫助我們。4.1 創(chuàng)建顯示管理任務(wù)我們在main.c的app_main中創(chuàng)建一個專門負責顯示更新的任務(wù)。// 顯示任務(wù)函數(shù) static void display_update_task(void *pvParameters) { ESP_LOGI(TAG, “Display update task started.”); // 獲取傳入的參數(shù)例如一個包含傳感器數(shù)據(jù)的隊列句柄 // QueueHandle_t sensor_queue (QueueHandle_t)pvParameters; while (1) { // 1. 從隊列或全局變量獲取最新數(shù)據(jù)例如溫度、濕度 // float temperature 25.0f; // 示例數(shù)據(jù) // xQueueReceive(sensor_queue, temperature, portMAX_DELAY); // 2. 清空特定顯示區(qū)域避免全屏刷新閃爍 display_draw_fill_rect(0, 140, DISPLAY_WIDTH, 20, COLOR_BLACK); // 3. 格式化并顯示數(shù)據(jù)需要實現(xiàn)sprintf到顯示的轉(zhuǎn)換 // char buffer[20]; // sprintf(buffer, “Temp: %.1fC”, temperature); // display_draw_string(10, 140, buffer, COLOR_CYAN, COLOR_BLACK); // 4. 任務(wù)延時控制刷新率例如每秒2次 vTaskDelay(pdMS_TO_TICKS(500)); } // 任務(wù)不應(yīng)返回如果返回則刪除自身 vTaskDelete(NULL); } void app_main(void) { ESP_LOGI(TAG, “Application started!”); // 初始化顯示屏 if (display_init() ! ESP_OK) { return; } display_clear(COLOR_BLACK); display_draw_string(10, 10, “System Online”, COLOR_GREEN, COLOR_BLACK); // 假設(shè)已實現(xiàn) // 創(chuàng)建用于任務(wù)間通信的隊列示例 // QueueHandle_t sensor_data_queue xQueueCreate(5, sizeof(float)); // 創(chuàng)建顯示更新任務(wù) xTaskCreate(display_update_task, // 任務(wù)函數(shù) “Display_Task”, // 任務(wù)名稱 4096, // 堆棧大小根據(jù)需求調(diào)整防止堆棧溢出 NULL, // 傳遞給任務(wù)的參數(shù)如隊列句柄 5, // 任務(wù)優(yōu)先級數(shù)字越大優(yōu)先級越高 NULL); // 任務(wù)句柄不需要保存 // 主循環(huán)可以處理其他事情如Wi-Fi連接、HTTP請求等 while (1) { // 模擬其他工作 // float simulated_temp read_sensor(); // 模擬讀取傳感器 // xQueueSend(sensor_data_queue, simulated_temp, 0); vTaskDelay(pdMS_TO_TICKS(1000)); } }4.2 FreeRTOS最佳實踐與堆棧溢出檢測堆棧大小任務(wù)堆棧大小上文的4096需要仔細評估。display_draw_fill_rect中使用了動態(tài)內(nèi)存分配但任務(wù)本身的調(diào)用棧也要足夠。ESP-IDF提供了堆棧溢出檢測功能。你可以在menuconfig中啟用Component config - FreeRTOS - Enable FreeRTOS trace facility和Enable FreeRTOS stack overflow detection。當發(fā)生溢出時會在串口輸出警告。任務(wù)優(yōu)先級顯示更新任務(wù)優(yōu)先級不宜過高避免影響更關(guān)鍵的任務(wù)如網(wǎng)絡(luò)心跳。優(yōu)先級5是一個中間值。使用隊列通信強烈建議使用FreeRTOS隊列xQueueCreate,xQueueSend,xQueueReceive在任務(wù)間傳遞顯示數(shù)據(jù)而不是使用全局變量加信號量這樣更安全清晰。5. 常見問題與深度排查在開發(fā)過程中你幾乎一定會遇到一些問題。以下是典型問題的排查思路。問題現(xiàn)象可能原因排查步驟與解決方案屏幕白屏或背光亮但無顯示1. 電源問題電壓/電流不足2. 復位時序不對3. SPI通信失敗模式、頻率4. 初始化命令序列錯誤1. 確認VCC接3.3VGND共地測量電壓是否穩(wěn)定。2. 檢查RST引腳復位脈沖拉低10ms再拉高用邏輯分析儀或示波器看波形。3.重點檢查SPI模式(CPOL/CPHA)和時鐘頻率。將頻率降低到10MHz或1MHz試一下。用邏輯分析儀抓取SCLK、MOSI、DC、CS波形與數(shù)據(jù)手冊時序圖對比。4. 核對st7735s_init函數(shù)中的命令和數(shù)據(jù)確保與你的屏幕型號匹配。有些屏幕需要額外的0x21反轉(zhuǎn)顯示或0x20命令。顯示花屏、錯位、顏色異常1. 數(shù)據(jù)格式不對RGB565 vs RGB8882. 掃描方向設(shè)置MADCTL錯誤3. 顯存窗口設(shè)置錯誤4. 像素顏色字節(jié)序錯誤1. 確認0x3A命令發(fā)送的數(shù)據(jù)格式是0x05(16bit) 還是0x06(18bit)。2. 調(diào)整0x36(MADCTL) 命令的參數(shù)。嘗試0x00,0xC0,0xA0等值觀察顯示方向變化。3. 檢查set_window函數(shù)中坐標計算是否正確特別是結(jié)束坐標x1,y1。4. RGB565顏色值的高低位字節(jié)順序可能需交換。嘗試將send_data中的color 8和color 0xFF順序?qū)φ{(diào)。SPI初始化失敗1. GPIO引腳沖突或被占用2. DMA通道配置問題3. 堆內(nèi)存不足1. 檢查mosi_io_num,sclk_io_num等是否與其他外設(shè)如SD卡、PSRAM沖突。ESP32-S3的某些GPIO有特殊功能。2. 嘗試將spi_bus_initialize中的SPI_DMA_CH_AUTO改為SPI_DMA_DISABLED禁用DMA測試。3. 增大max_transfer_sz或檢查系統(tǒng)可用堆內(nèi)存。編譯錯誤portmacro.h相關(guān)FreeRTOS配置頭文件包含錯誤或版本不匹配1. 確保#include “freertos/FreeRTOS.h”在#include “freertos/task.h”之前。2. 清理構(gòu)建目錄 (idf.py fullclean) 并重新編譯。3. 檢查ESP-IDF版本確保所有組件兼容。運行時報錯invalid head of packet1. 燒錄時板子未進入下載模式2. 串口驅(qū)動問題3. 開發(fā)板型號選擇錯誤1. 按住BOOT鍵再按一下RST鍵然后松開RST再松開BOOT使板子進入下載模式然后快速點擊燒錄。2. 重新安裝CP210x或CH340驅(qū)動或更換USB口/數(shù)據(jù)線。3. 在menuconfig中確認Target選擇的是ESP32-S3。6. 進階優(yōu)化與工程建議一個健壯的顯示驅(qū)動需要考慮更多。雙緩沖與局部刷新問題直接操作顯存即直接向屏幕發(fā)送數(shù)據(jù)在繪制復雜圖形或頻繁更新時會導致屏幕閃爍。方案在ESP32-S3的內(nèi)部RAM或PSRAM中開辟一塊與屏幕分辨率相同的幀緩沖區(qū)Frame Buffer。所有繪圖操作先在緩沖區(qū)中進行完成后一次性將整個緩沖區(qū)通過DMA發(fā)送到屏幕。這需要較大的內(nèi)存128x160x2 ≈ 40KB但ESP32-S3通??梢猿惺?。ESP-IDF的spi_device_queue_trans和spi_device_get_trans_result可以配合DMA實現(xiàn)非阻塞傳輸。字體與圖形庫實現(xiàn)display_draw_char和display_draw_string需要字模數(shù)據(jù)。可以集成輕量級的開源庫如u8g2需適配或lvgl功能強大但資源消耗大。對于簡單英文/數(shù)字可以自己定義一個小型位圖字體數(shù)組。低功耗考慮當不需要顯示時可以通過命令如0x28進入睡眠模式關(guān)閉屏幕并關(guān)閉背光控制BLK引腳。同時可以降低SPI總線頻率。驅(qū)動抽象層將spi_display.c中的st7735s_init、set_window等函數(shù)通過函數(shù)指針封裝在一個結(jié)構(gòu)體里。這樣如果你想更換為ILI9341、SSD1306等其他SPI屏幕只需實現(xiàn)一套新的操作函數(shù)并替換這個結(jié)構(gòu)體上層應(yīng)用代碼無需改動。錯誤處理與日志目前的驅(qū)動使用assert和ESP_ERROR_CHECK在生產(chǎn)環(huán)境中應(yīng)考慮更優(yōu)雅的錯誤恢復例如初始化失敗后重試或記錄錯誤狀態(tài)。7. 邁向AI物聯(lián)網(wǎng)項目至此你已經(jīng)掌握了在ESP32-S3上驅(qū)動SPI顯示屏的核心技能。這僅僅是開始。在一個完整的AI物聯(lián)網(wǎng)項目中這塊屏幕可以扮演“本地交互界面”的角色狀態(tài)顯示實時顯示W(wǎng)i-Fi連接狀態(tài)、MQTT連接狀態(tài)、本地傳感器數(shù)據(jù)溫濕度、光照。人機交互結(jié)合按鍵或觸摸屏實現(xiàn)簡單的菜單操作用于配置網(wǎng)絡(luò)、觸發(fā)動作。AI結(jié)果可視化如果你在ESP32-S3上運行了輕量級AI模型如TensorFlow Lite Micro進行圖像分類可以將識別結(jié)果如“cat: 95%”直觀地顯示在屏幕上。調(diào)試信息輸出在開發(fā)階段將重要的日志信息輸出到屏幕方便現(xiàn)場調(diào)試。下一步你可以嘗試完善圖形庫實現(xiàn)畫線、畫圓、顯示圖片。將顯示任務(wù)與網(wǎng)絡(luò)任務(wù)如從云端獲取天氣信息并顯示通過FreeRTOS隊列結(jié)合。探索使用LVGL等高級圖形庫創(chuàng)建更復雜的用戶界面。將整個項目移植到ESP-IDF的組件系統(tǒng)中使顯示驅(qū)動成為一個可復用的組件。驅(qū)動一塊“74”SPI顯示屏模塊是連接物理世界與數(shù)字世界的一個經(jīng)典而有趣的起點。希望這篇詳細的指南能幫助你掃清障礙順利點亮屏幕并為你的ESP32-S3物聯(lián)網(wǎng)項目增添一抹亮色。如果在實踐中遇到新的問題歡迎在社區(qū)分享與交流共同進步。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩av在线免费观看| 激情网五月天| 九九99免费视频| 天天综合网亚洲综合网| 激情五月天婷婷丁香| 热热久久99| 超碰色热| 色色国产| 婷婷五月在线综合| 99re在线观看| 久久99热 这里有精品| 色色色婷| 天天日日夜夜爽| 久久婷婷影院| A色色| 99色在线| 色婷婷精品| 五月天丁香综合在线| 婷婷五月在线视频| 国产噜一噜天天噜| 午夜激情久久| 9999久久久久| 天天拍夜夜爽| 九九色色色| 午夜大香蕉| 亚洲婷婷视频| 国产成人精品一区二三区熟女在线| 操嫩逼电影| 日韩不卡123| www.99情趣网| 欧美五月丁香在线| 久久丁香网| 色屌丝中文字幕| 久久婷婷五月综合精品蜜芽| 国产精品18久久久| 九九精品亚洲| 五月天婷婷色播| 日韩久久这里只有精品| 五月伊人网| 丁香六月婷婷色XXXX| 日本97人人| 玖玖婷婷综合| 亚洲99手机免费看视频| 噜噜网免费视频| 亚洲熟女乱色综合亚洲网站| 四月婷婷五月丁香| 亚洲色图81p| 久色激情| 日韩乱轮AV| 日本色色图| 色综合综合色| 午夜婷婷六月天| 婷婷丁香六月五月天| 97搞在线| 伊人综合婷婷| 久久hd| 影音先锋天天日| 三人荫蒂添的好舒服A片| 99热在线观看免费精品| 久热无码| 操人妻AV| 国产精品成人网站| 啪啪综合| 99 色色吧| 多精窝99在线视频| 极品五月天| 婷婷香五月综合激情| 激情五月综合色婷婷| 激情五月天在线| 天天拍夜夜撸| 亚洲性爱干干| 色色网站毛片| 欧美色偷偷大香| 激情久久四色| 色五月婷婷在线观看| 五月天丁香啪啪啪啪| 丁香色影院| 夜夜骑夜夜撸| 久草天堂| 欧美顶级少妇做爰HD| 九九色图| 五月丁香六月婷婷无码| 国产99久9在线| 97碰精品| 中文字幕av网站| 亚洲永远av在线播放| 91 久热| 久久女伦| 欧美色色日韩| 国产白丝在线一区| 性做久久久久久久免费看| 久草热8精品视频在线观看| 99综合99| 国产黄大片在线观看画质优化| 亚洲无AV在线中文字幕 | 高清av在线国产| 99热一本久道| 婷婷五月大| 九九热在视频| 超碰97干| 大香伊人久色| 欧美婷婷日本| 五月丁香在线婷婷美女| 亚洲中文字幕av| 99热免费| 91色九| 五月天婷婷六月激情网| 久机视频这只有精品| 久久久久久久久99精品| AA片在线观看视频在线播放| 亚洲尤物在线| 伊人久热91| 亚洲五月婷婷在线| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 思思热在线观看| 96丁香六月婷婷蜜桃综合久久| 日本久久精品18| www,超碰| 午夜免费试看| 人妻狠狠操| 九色91美女| 超碰在线免费| 热99在线| 激情98色婷婷五| 99偷拍视频在线日本| 久久久性爱视频| 日本人妻操| 天天干电影| 婷婷丁香91| 9久热在线精品| 色www.con| WWW.五月天9999| 91成人性爱视频| 五月丁香六月婷| 色婷狠狠| 五月婷婷色吧!| 九九热精品| 久久婷婷久久| 欧美精品99久久久| 激情五月www| 秋霞av不能| 777色色色| 亚洲精品V天堂中文字幕| 久久五月天色婷婷| 丁香五月婷婷AV在线| 成人做爰高潮A片免费视频| enecarbon-materials.com污K127封锁请涟系@wip1688 | 91色吧网| 久久99热这里只有精品| 91高潮喷水久久久久久久久| 这里只有精品视频在线观看免费| 99噜噜噜在线播放| 五月天开心婷婷激情网站| 日亚二欧美| 久久久91| 天天骑日日爽| 久久草中文日韩欧美| 婷婷五月综合免费在线| 天天爽天天做| 天天视频精品9| 九色在线五月婷婷网址| 久热A| 国产女18毛片多18精品| 色色色综合网| 婷婷射婷婷舔| 9+1视频网址| 97五月婷婷| 亚洲va欧洲va国产va不卡| 欧美性猛交XXXX乱大交极品| 被强行糟蹋的女人A片| 婷婷五月天综合蜜桃| 中文超碰视在线| 超碰国产AV| 久久这里精彩免费在线观看| 啪啪五月婷婷| 久久996re热这里只有精品无码| 人妻人人操| 久久色9| 99热这里只有精品16| 婷婷五月天综合久久日美女| 婷婷色基地| 婷婷字幕在线| 色播播婷婷| 久久综合站| 激情婷婷综合五月少妇| 欧洲区自拍| 日韩无码色色| 色五月婷色彩免播放器| 黄色成人AV在线| 91啪啪| 玖操97| 超碰国产在线观看| 婷婷狠狠97| 人人色婷婷| 都市激情亚洲| 五月色综合| 婷婷久久久| 婷婷久久五月天| 天天日天天做天天舔| 成人日韩欧美| 日本在线免费中文com.| www.99.色| 丁香五月婷婷日本| 99精品久久久久久久婷婷| 五月六月丁香激情| 日本片日本片祼观看网站在线看中文版网页在线看 | 99视频这里有精品| 久热超碰| AV性爱在线| 亚洲色综合| 9久久精品| 国产精品色色| www,26uuu,c0m,色情| 婷婷五月丁香色播| 三级三久久线久久99久目本WW| www.五月激情.com| 五月天色站| 中文无码婷婷| 婷婷婷五月天最新综合你懂的| 91日在线视频| 六月丁香av| 亭亭丁香aV| 丁香五月激情网| 五月天久久成人| 蜜臀嫩草| 亚洲网站在线鸭子av| www色婷婷com| 五月婷九月| 九九在线视频| 少妇人妻丰满做爰XXX| 欧美色六月婷婷| 婷婷激情啪啪| 色色丁香色五月| www.91久久| 99精品在线观看视频| 懂色AⅤ| 婷婷舔| 久久免费精品小视频| 久久久九九九 99| 日99网站| 日比网免费国产| 丁香五月天激情综合| 猫咪伊人久久| 9有码中文| 久热这里只有精品66| 婷婷99狠狠躁天天躁中文| 91狠狠色丁香婷婷综合久久精品| 午夜色丁香| 亚洲无AV在线中文字幕 | 99视频精品全部免费看| 色婷婷电影| 五月综合亚洲婷婷| 亚洲国产精品VA在线看黑人| 婷婷五月天在婷| 超碰91在线| 日韩五月婷婷久久| 久久XX| 五月婷婷丁香社区| 思思99re这里只有| AV堂狠狠干| 波多野结衣AV无码Porn| 狠狠99| 99热只有精品在线| 色欧美影院| 91pornav在线| 国产黄色在线观看| 99热亚洲| 五月天婷婷成人网| 婷婷色情六月| 亚州精品久久久久AV无码| 久久人操| 色99在线观看| 五月丁香91| 99色综合| 乱精品一区字幕二区| wwwss在线观看| 色婷婷电影网| 秋霞少妇AV网站| 7EzOBIhNq85TO| 91紱請| 九九丁香社区欧美激情| 超碰在线观看三级片| 日韩精品无码一区二区| 九九伦子片| 中文字幕人妻AV| 玖玖伊人网| 婷婷五月欧美AA片免费| 欧美VA视频| 97五月婷婷| 中文字幕,综合,91| 色性综合| 日日射天天射| 亚洲精品激情| 色综合久久中文| ji'qi'luan'ren'lun| 色五月婷色彩免播放器| 超碰免费在线| 91色涩| 中文字幕日产A片在线看| 久久婷婷热| 99久热这里只有精品| 五月婷婷影院| 91日韩美女被插视频| 红桃91人妻爽人妻爽| 99热在线极品极品| 996热re视频在线观看视频| 成人AV片播放| 欧美日韩日韩成人| 丁香九月综合激情| 五月丁香亚洲校园欧美| 日韩超碰在线| 99热在这里只有免费精品| 五月五丁香婷婷| www,婷婷| 婷婷五月六月| 另类五月婷婷| 五月丁香婷婷综合在线| 精品色色网| 26UUU在线观看| 丁香九月婷婷色| 激情婷婷五月天日本系列| 狠狠色噜噜狠狠| 嫩草乱码一区三区四区| 性爱久久| wwwss在线观看| www.五月天| 久热这里只有精品6| 亚洲黄色影视| 亚洲中文字幕在线观看| 亚洲综合碰| 在线播放成人网站| 热久久66| 亚洲不卡| 黄色网址五月婷婷| 久久日曰| 五月婷婷内射网| 六月婷婷在线| 激情五月天伊人av| 超碰免费在线| 狠狠爱丁香婷| 天天操五月天| 婷婷五月蜜桃成人桃色丁香| 伊人五月丁香| 久久97| 久久er99热精品一区二区| 五月停停99| 果冻传媒A片一二三区| 婷婷六月色情| 思思久ren热| 天天色综合图片| 综合久久影院| 99久久国产综合精品五月天喷水\| 欧美超碰亚洲| 久久婷丁香五月| 色五月婷婷丁香国产在线| 天天色综合网1| 五月丁香婷婷中文| 久久久久久五月天| 淫视馆aV二区一区| 久久人妻www| 五月丁香综合啪啪| 久大香蕉| 一区二区三区四区五区| 婷婷在线综合| 九月婷婷综合在线| 成人婷婷深爱综合网| 91九色国产熟女| 中文字幕中文有码在线| 色婷婷WWW| 久久婷婷综合五月趴| 中文激情网| 字母不卡码人逼| wuyuedingxiang99| www99精品| 日本偷拍九九九| 操人妻90p| 久久久久婷婷| 97色欧美| 色婷婷狠| 丁香五月六月婷婷殴美综合| 激情国产五月| 五月天开心激情网色欲无码| 丁香六月欧美| 精品操逼一区二区| 丁香六月婷月91婷月| 天天摸天天透天天舔| 97碰久久| 超碰在线超碰| 舔色婷婷| 亚洲网站观看视频| 亚洲色爽| 亚洲人人操| 色婷婷精| 热这里| 玖玖五月丁香| 久久99三级在线视频| 亚洲婷婷丁香五月亚洲| 激情五月丁香六月综合AVXXXX| 高清无码.com| 欧美性爱中文字幕| 久久精品五月天| 亭亭玉月丁香| 色操综合| 五月天综合在线观看| 九九久久色| 五月激情丁香| 97国产精品女人碰碰| 激情婷婷五月天日本系列| 五月天福利影院导航| 色5月婷婷| 久9久9久9久9久9久9| 操久久精| 日日噜噜夜夜狠狠久久丁香六月| 欧美性爱五月天| 99久久久久| www.91色| 国产精品久久久久久久久久| 天天日,夜夜爽| 日木WWW视频| 影音先锋人妻出差| WWW.久久久久久久久久久久久| 精品亚洲VA网站| 另类丁香综合| 99热e| 91 九色 熟女| 51精品国自产在线| 婷婷五月天香蕉| 国产永久一黄| 激情五月婷婷综合| www.五月天婷婷姐姐| 久久婷婷青青草| 亚洲综合激情五月| 婷婷五月天激情偷拍| 色九月婷婷丁香| 色色色99| 丁香8月手机综合| 色色免费网战视频| 91精品久久久久久久久久久久| 久久9精品| 久久婷婷丁香五月一二三| 成人.在线日韩| 婷婷久久草| 精品99在线| 色五月 五月婷婷| 干婷婷五月天| 久久9RE热视频精品98| 91丨九色丨熟女丰满| 天天操夜夜爽天天操| 少妇被下春药玩弄A片| 色综合综合网| 五月丁香婷婷在线| 免费黄网不卡AV| 激情五月天婷婷五月天| 66精品国产成人| AA片在线观看视频在线播放| 天天在线XXX| 97自拍视频在线| 国产毛多水多女人A片| 99精品22| 久久视这里只有精品| 综合AV网| 亚洲中文字幕AV| 狠狠五月丁香色婷| 色色色婷婷| 色婷婷五月天在线观看| 婷婷十月激情综合网| 色婷婷成人网| 色吧网91| 偷拍五月丁香| 噜噜吧天天爱| 狠狠人妻久久久久久综合丁香| 久久全色| 99精品偷自拍| 精品激情| 天天爽夜夜爽夜夜爽精品视频| 亚洲综合在线伊人婷| 伊人喵咪a V| 五月丁香综合啪啪| 亚洲第一第二网站| 色婷婷五月基地在线| 婷婷激情五月视频| 婷婷伊人久久无码色五月| 天天射影院| 五月六月激情婷婷| 97人人干人人操| 丁香深五月婷婷| 96丁香六月婷婷蜜桃综合久久| 婷婷精品性性性性性性性| 97人人干人人操| 少妇AB又爽又紧无码网站| 9999色色色色| 99天堂网| 丁香九月综合在线| 国产美女无遮挡裸体毛片A片| 久久五月天婷婷| 人妻性爱| 色婷婷激情| 乱乱av| 97人人搞| 婷婷六月五月天综合| 欧美婷婷| 日本97在线| 黄桃AV无码免费一区二区三区| 99资源在线视频| 婷婷色五月天综合网| 丁香五月区| 99热亚洲只有色| 亭亭五月色男人| se色99| 在线成人av播放| 丁香五月开心七月| 五月涩涩网| 精品亚洲国产成AV人片传媒| 大香蕉五月天| 色在线99| WWW免费视频碰碰碰碰| 六月丁香影院| 这里只有在线精品| 婷婷激情综合网| 久在热99| 亚洲精品色| 欧美 日韩 成人 在线| 亚洲人妻五月丁香婷婷| 99爱在线| 久久久97| 五月婷婷无码专区| 久久99热这里只有精品首| 啪啪婷婷五月天激情| 色婷婷影音| 免费成片在线观看| 久久婷婷夜| 日韩三级视频一区二区| 日本nghangse中文字幕| 99啪视频在线观看| 亚洲成人网站在线| 91视频精品99| 精品久热| 开心激情色婷婷五月天| 加勒比色色| 九九成人精品| 亚洲人人操BD| 五月花激情| 五月丁香综合激情网| 丁香五月天在线观看| 99免费热视频在线| 婷婷久久五月天| 五月婷婷导航| 99视频内射三四| 五月丁香六月激情欧美综合| 99热精品在线| 久久婷婷丁香花综合网| 丁香五月婷综合| 婷色视频| 99啪啪| 久久视频66| 婷婷色5月天在线。| 色 五月婷婷基地| 女人天堂 AV| 99热色精品| 五月丁香琪琪| 国产成人精品亚洲线观看| www.97视频| 精品自拍99| 91视频免费后入强操| 久久五月网| 久鲁鲁色网 | 亚洲中文字幕网| 激情五月深爱五月| 激情五月www| 九九在线视频| 天天操夜夜操| 婷久久综合| 激情综合区| 综合激情网| 久热这里只有精品99re| 91天天操天天干天天射| 99久久户外勾搭| 人妻在线网站| www.婷婷五月天,com| 天天橾日日橾夜夜橾17| 国产va视频| 激情五月综合| 99人人干人人操| 任你草| 丁香五月婷在线| 9999三级片| 国产人妻人伦精品一区二区| 9久久精品视频| 激情四射五月天偷偷看婷婷| 婷婷五月亚洲一本在线丁香| www.婷婷六月天| 婷婷五月激情在线| 久久五月六月| 五月天天久久香| 婷婷五月天色色| 一级无码作爱片| 丁香五月六月久久综合| 五月天国产| 亚洲精品久久久无码| 影音先锋男人资源站一区二区| 丁香丁香激情网| 国产欧美va| 禁欲电影完整版在线播放| 亚洲色基地| 伊人日日干| 黄网免费看| Av中文在线| 99亚洲综合| 日韩欧美成人片| 91色色五月天| eeuus五月婷| 婷婷五月天天爽| 日韩av变天就操逼不卡区| 色玖玖综合网| 99热这里只有精品青草| 色婷婷丁香花五月天| 啪啪啪综合网| 激情久久丁香| 亚洲国产网站| 五月天黄色激情小说| 99精品综合视频| 97热九九| 五月婷婷色五月| 亚洲av| 婷婷五月成年人| 九九久久99精品免费观看www| 婷婷九月丁香中文| 久久久精久人妻| 色婷婷影院| 伊人99热| 99热日韩| 91大神操美女| 欧美色色色色色色| 9热久久| 丁香五月综合在线视频| 涩丁香| www.五月激情.com| 人妻少妇色综合| 狠狠色丁香久久久婷| 婷婷五月精品中文字幕| 91pornav在线| 思思热这里只有精品| 人人操超碰| 亚洲综合婷婷五月天| 99国产精品白浆在线观看免费 | 人人色婷婷五月天| 五月丁香成人网| 9色在线视频| 成人在线日韩欧美| 五月丁香六月色| 五月色综合| 日韩淑女人妻luan伦激情精品一区二 | 九九久久精品國產| 这里只有精彩视频| 日本97在线| 99热只有| 五月天婷婷免费| 婷婷丁香97| 一区视频网站| 五月天婷婷基地| 久久婷婷伊人| 99色视频| 色天天综合色| 亚洲99精品九九在线| 欧美激情综合色综合| 九月停停| 天天爽天天干| 婷婷五月香蕉| 六月丁香网| 99热这里只有精品国产免费| 亚洲V国产V欧美V久久久久久| www.五月激情红色| 日韩综合成人| 久99视频在线观看| 五月丁香六月激情欧美综合| 中文成人在线| 天天爽爽日日做做| 夜夜躁婷婷AV| 综合久久综合五月天婷婷| 婷婷 久综合| 激情综合网激情五月俺也去| 亚洲AV第二区国产精品| 99在这里有精品| 国产成人精品一区二三区熟女在线 | 成人欧美日韩| 成人人操| 17.c黄色| 综合av在线| 色五月婷婷天天干| 色欲天天综合网| 五月天丁香综合在线| 丁香五月 六月婷婷首页| 五月天精品| 六月丁香综合| 久色激情| 激情婷婷五月天丁香| 婷婷丁香五月综合| 狠狠色婷婷丁香六月| 色哟呦av| 日韩色色小视频| 色色色国产| 99亚洲精美视频在线观看| 国产av一区二区三区| 婷婷色五月天综合网| 97日本在线| 99热精品在线播放| 久久综合五月| 99热国产在| se色综合网| 久热在线中文字幕色999舞 | 香焦网五月天| Blackedraw视频一区二区| 色婷婷六月天| 天天天天天操| 99福利导航| 天天干天天日蜜臀av| 91色噜噜狠狠狠狠色综合| 丁香婷婷人妻综合网| 99精品国产在热久久婷婷| 丁香五月婷婷五月| 久久婷婷五月综合啪| 黄涩毛片| 色啪综合| 亭亭玉立国色天香| 最近免费中文字幕大全高清大全1| 狠狠综合网| 26uuu国产精品| 激情五月丁香色婷婷| 天天插天天插天天插天天插| 欧美激情综合| 亚洲综合婷婷| 婷婷六月婷婷| 久久性爱视频| 狠狠色丁婷婷日日,伊人激情综合网| 色五月97| 五月丁香婷婷基地| 天天综合精品| 亚洲视频在线网| 婷婷在线五月综合| 精品久久9| 毛片毛片毛片毛片| 五月丁香 啪啪啪| 五月丁香六月激情综合网| 激情五月丁香色色去久久| 怎么样可以看免费的一级av| 99热这里只有精品8| 91碰超| 色婷婷五月天视频在线| 玖玖精品资源| se色99| av九九| 九九色综合网| 婷婷五月天午夜激情影院| 亚洲无码影音| 4438亚洲欧美| 色欲一区二区三区精品A片| 午夜大香蕉| 99九九精品视频| 五月天成人网在线观看| 天天色天天色天天色天天色天天色| 青青草a在线| 337p大胆噜噜噜噜噜91Av| 日韩精品一区二区亚洲AV观看| 久久99久久99www| 中文字幕视频色婷婷| 婷婷五月天色| 亚洲成人免费在线| 婷婷五月天久久| 亚洲不卡| 欧美激情综合| 岛国AV网| 婷婷五月丁香基地| 五月丁香婷色| 激情五月天色网站| 337p大胆噜噜噜噜噜91Av| 久久伦乱| 综合久久影院| 国产99久| 极品少妇高潮啪啪AV无码| 91人妻PORNY九色大屁股| 六月婷婷色综合| 中文AV网| 99久热| 国产午夜精品一区二区三区四区| 疯狂做受XXXX高潮A片动画| 久久视频在线视频| 男人操女人高潮91视频| 亚洲三A| 久久综合五月情| 丁香婷婷综合影院| 99九九免费精品| 国产91九色| 五月丁香久| 91久久久久久| 激情婷婷五月女| 成人五月天在线视频在线观看| 色小说婷婷五月天天天| WWW激情五月天| 久热播这里只有精品| www.五月.com| 超碰色综合| 天天色综网| 国产精品99久久久久久久女警| 无码激情AAAAA片-区区| 琪琪色综合网站| 人人操91色| 在线观看亚洲视频影院| 第四色婷婷日本| 26uuu亚洲欧美另类| 丁香色综合| 99成人| 五月天婷婷影院| av操逼网| 碰碰操91| 五月天激情综合首页| 亚洲99视频| 六月天婷婷| 99久在线精品99re8热| 久久久18| 丁香色五月婷婷| 激情综合五月激情XXXX| 秋霞丝袜啪啪啪| 免费看欧美成人A片无码| xx久久| 66精品成人免费网站在线观看| 99久久亚洲精品视频| ou洲色吧| 亚洲亚洲人成综合网络| 97色色婷婷五月天| 日韩性视频| 九九热视频免费观看| 五月亭亭网成人在线视频| 99热这里只有精品3| 超碰日韩成人| 狠狠爱婷婷| 五月在在观看| 色色99| 国产亚洲精品AAAAAAA片| 久久精品噜噜噜成人A∨色欲| 色婷婷基地| 中文字幕婷婷五月天在线观看| 538任你爽| 日韩一级一片内射视频4K| www.五月天婷婷| 六月丁香深深爱| 伊人婷婷大香蕉| 国产,欧美,学生妹,视频| 精典久久| 五月天色视频| 久久人妻视频| 色五月大| 婷婷六月色情| 婷婷五月天色| 国产探花一片区| www.激情在线| 久久丁香五月| 人人摸人人干| 99精品热视频| 七七色色综合| 亚洲精品国产精品乱码视99| 五月精品免费XXX| 激情5月婷婷狠狠干| 丁香色六月| 久久婷婷网站| 亚洲成人网站在线| 欧美日韩中国| 性做爰1一7伦| 亚洲av无码精品色午夜| 第四色婷婷五月| 五月天精品视频| 色婷婷久久视屏| 亚洲男人的天堂婷婷色五月| 久草热在线视频| 色综合香蕉| 开心五月色婷婷综合开心网| 久热99| 91操片| 六月婷婷中文字幕| 97成人操| 色综合xx| 日本片日本片祼观看网站在线看中文版网页在线看| 狠狠情色| 婷婷五月天欧美| 色色欧美。| 色色色精品无码区| 五月天成人小说| 日韩成人电影在线播放| 日本色视| 婷婷六月天| 99人人操人人摸| 色情婷婷| 综合五月草| 色色色无码| 一级二级色大片| 殴美日韩成人| 亚洲熟女色| 大香蕉九操| 99久久99九九九99九他书对| 91狠狠综合久久| 激情五月天丁香| 99热激情| 激情五月丁香五月| 九九综合久久| 99热超| 五月天网站亭亭| 久久五月天丁香花| 婷婷丁香色情| 久久综合九色综合88i| 日日操,夜夜撸| 三级av在线| 思思w99| 丁香五月婷婷激情97| 狠狠操狠狠狠| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | www.天天干.com| 丁香六月激情| 婷婷五月天中文字幕.| 色五月婷婷五月天| 玖玖伦理电影| AA片在线观看视频在线播放| 日操五月婷| 大香焦啪啪啪| 五月激情久久综合网| 色吊丝99| 可以免费观看的AV| 91丨九色丨丰满人妖| 色婷五月| 99久久国产宗和精品1上映| 日本天天操| 久久 这里只有精品1| 99干免费视频| 久久a热| 超碰色综合| 色婷婷小说网| 6080av| 97超碰9久热婷婷热| 丁香六月婷婷综合缴| 182TV亚洲| 亚洲这里只有精品| 五月丁香网站在线播放| 日本大人久久| 丁香久月| 婷婷色婷婷亚洲成人| 蜜桃成语时李时珍 免费| 婷婷五月天论坛| 青青艹b| 色一情一乱一乱一区91| 天天爽成人综合网站| 九九热123| 五月婷婷丁香婷婷| 99自拍视频在线| 天天射影院| 99热中文字幕久久| 婷婷97碰碰| 日本三级中国三级99人妇网站| 六月婷婷影院| 色综合狠狠色| 97人人草| 韩国天天婷婷| 婷婷丁香五月综合| 日日噜噜夜夜狠狠久久丁香五月| 九九激情| 亚洲中文字幕AV| 中文字幕精品无码一区二区| 天色综合网| 五月丁香综合啪啪啪啪啪| 丁香五月六月激情久久| 亚洲精品影视| 色噜噜丁香| 97色色婷婷五月天| 天天综合干| 久草a片| 色五月激情五月| 九月丁香八月婷婷久久综合久97| 天天干,天天舔| http://www.sd-xiangsu.com/| 日本久久精品| 五月丁香婷婷狠狠操| 久热九九| 99视频网| 99热97| 色色网91| 包操45分钟网站| 狠狠搞狠狠操| 国产成人精品一区二三区熟女在线| 9超碰在线| 影音先锋激情网| 欧美日本国产欧美日本韩国99| www.AV在线| 免费看欧美成人A片无码| 日韩一级网站| 热久久视频99| 97人人操人人爽| HD久久精品视频| 久久精品99国产精品日本| 丁香五月天.com| 国产精品视频久久99| 停停五月色宗合| 岛国在线观看91| 九九热AV| 开心五月网| 国产69久久久欧美黑人A片| 国产97色在线| 丁香六月亭亭久久综合| 五月天综合网| 九洲一级A片| 婷婷色情五月| 激情深爱五月天| WWW免费视频碰碰碰碰| 五月天激情婷婷丁香| 狠狠干五月天| 丁香婷婷基地| 婷婷丁香五月欧美人| 99久久66| 久久综合干| 99九九中文字幕视频| 67久久| 无码激情AAAAA片-区区| 色播五月| 97色在线视频| 婷婷五月天天爽| 天天色色天天| 丁香五月欧美色综合| 色人五月婷婷| 久久久这里都是精品| 久久与婷婷| 天天操五月天| 婷婷日本色| 九九成年视频| 91黄色五月天视频| 亚洲亚洲人成综合网络| 99热婷婷| 91日本在线观看| 日日操日日撸| 亚洲日日操| 中文字幕视频在线播放| 五月丁香六月婷| 综合激情视频| 亚洲99精品欧美一区| 久狠日av| 丁香五月婷婷激情中文| 婷婷五月丁香久久| 久久婷婷一级片| 天天撸夜夜爽| 五月天婷婷开心| 秋霞电影理论| 色小说五月婷婷| 天天色,天天操,天天射| 欧美色六月婷婷| 五月丁香六月色情网欧美| 99热精在线九九久久保| 在线VA视频| 六月丁香婷婷色综合| 南京搡BBBB搡BBBB| 婷婷综合网伊人| 色情久久久| 五月网在线| AAAA网站| 九九热99熟女| 成人AV免费观看| 日韩AAAAA| a网站免费观看| 欧美丰满熟妇BBB久久久| 少妇人妻丰满做爰XXX| 青草视频在线播放| av免费在线观看0| Av免费网站在线| 99热碰碰| 91黄址| 丁香五月婷婷深爱综合激情| 99热久只有精品首页| 五月天五月色| 开心五月激情婷婷| 婷婷丁香五月激情| 丁香六月激情四射| 成人丁香五月| 99热66| 2018夜夜草| 狠狠爱成人综合网| 狠狠色官网| 丰满少妇猛烈A片免费看观看| 欧美黑人巨大猛烈cuckold| 777影视理论片大全在线观看| 插插网爽妇五月丁香| 变态 另类 在线| 激情五月丁香六月婷婷| 国产色色小草视频| 99久久网站| 日本97在线| 精品婷婷| 激情五月天噢美| 少妇高潮呻吟A片免费看软件| 色九月激情综合网| 日日夜夜九九| 婷婷五月天电影网| 玖玖婷婷综合| 亚洲五月花| 日韩抽插操逼| 亚洲狠狠色丁香婷婷综合久久| 丁香五月精品| 日韩av网站在线观看| 99A级片| 99色6爱9热| 麻豆WWWCOM内射软件| 婷婷无码视频| 97超级操操| 99日本精品视频热| 人人操Av| 丁香花大香蕉婷婷综合| 色五婷婷开心缴| 99热主页日本| 九九热AV| 丁香五月av在线| 一起肏在线视频| 国产67194| 久久婷婷国产| 丁香六月婷婷缴情欧美| 色色网站| 丁香五月天啪啪| 9伊人网| 婷婷综合五月激情| 色综合五月| 午夜无码熟熟妇丰满人妻| 亚洲久久日| www.婷婷,com| 色五月综合激情| 97涩婷婷| 久久精品色| 天天操天天操天天操天天操天天操| 狠狠干综合| 欧美日韩成人在线网站| 久久这里都是精品视频| 女同激情久久av久久| 97超级碰人人| 蜜乳9188| 欧美日韩成人在线网站| 超碰日韩人妻在线| 激情五月婷婷综合| 色99网站| 疯狂做受XXXX高潮A片| 色欲婷婷五月天| 超碰熟女拍拍| 风流少妇A片一区二区蜜桃| 日本在线99| 开心五月综合| 九九黄色网| 97色在线视频| 狠狠插狠狠插| 色色色五月天婷婷| 狠狠看狠狠| 久99视频在线观看| 亚洲激情| 日日操,天天操| 五月激情影院| 久色网| 欧美日韩成人高清在线| 久久99草五月婷婷| 六月丁香婷婷色综合| 九九热在线观看视频| 色玖玖导航| 欧美性丁香色色五月天干干| www.91五月| 婷婷五月免费观看| 99免费热视频在线| 亚洲成人中心| 色色A| 91熟妇大香蕉| 三级大香蕉网| 无码免费人妻A片AAA毛片西瓜| 97人人草| 99ri精品视频在线观看| 91pornav在线| 婷婷激情小说| Www.se.久久| 丁香五月天啪啪激情综和网| 欧美成人一区二区三区在线视频 | 丁香婷婷人妻综合网| 久操婷婷| 婷婷五月中文在线| se99视频| 99色婷婷| 啪啪啪综合网| 久久五月视频| 色啪网| 超碰在线看| 99热精品在线| 草草视频91| 婷婷五月天成人网| 色人久久| 色婷婷www| 激情婷婷丁香五月天小说| 婷婷五月色天| 中海油常州环保涂料有限公司| 久久这里有精品| 欧美噜噜久久久XXX| 婷婷五月激情网| 26UUU一区二区| 亚洲激情四射| 日操五月婷| 欧美成人AAA片一区国产精品| 九月婷婷综合八月丁香在线观看| 丁香五月色色| 黄网在线播放| 婷婷六月丁香激情| 五月天色不卡| ss五月天激情| 国产人妻人伦精品一区二区| 色人五月婷婷| 色婷婷网大全在线| 色五狠狠| 丁香五月最新网址| 亚洲婷婷丁香| 99热老网站| 婷婷综合五月| 狠狠999| 狠狠噪| 夜夜操天天干| 日韩一级网站| 色五月首页| 激情五月图| 中文字幕乱码亚洲精品一区| 亚洲国产精品综合色区| 欧美婷婷九月| 色婷婷五月在线| www.粉嫩av.com| 538在线精品| 色五月天在线观看| 丁香色综合| 色五月激情综合网| 99.色| 亚洲操B视频| 婷婷激情社区| 欧美噜一噜| 伊人热婷婷| 九九99精品视频在线观看| 在线综合婷婷| 九九精品婷| 操碰91| 色婷婷五月综合在线| HD久久精品视频| www.丁香五月| 色婷婷影音| 日韩av网站在线观看| 另类小说色婷婷| 六月色国内综合| 色碰干| 中文字幕乱码亚洲精品一区| 五月婷婷69| 婷五月丁香俺| 欧美97超碰| 久久女人天堂| 人人色AV| h亚洲| 少妇人妻丰满做爰XXX| 激情五月天社区| 婷婷五月综合婷婷| 狼人伊人干| 综合网天天| 五月婷婷性| 99热 这里只有精品 国产 日韩| 国产免费一区二区三州老师F1…… | 色五狠狠| 成人片在线播放| 97超级啪啪在线观看| 五月天大香蕉| 欧美爆乳一区二区三区|