2018年5月17日 星期四

DIY - ESP8266:ESP-12F ILI9341 SPI TFT LCD 液晶屏程式(九十七)

DIY - ESP8266:ESP-12F ILI9341 SPI TFT LCD 液晶屏程式(九十七):

ESP-12F ILI9341 SPI (Serial Peripheral Interface Bus)TFT LCD 液晶屏程式是包括 LCD 初始化和 LCD顯示程式,LCD 初始化程式主要是控制 LCD 的 CS(GPIO0 / D3)、D/C(GPIO2 / D4)和SCK(GPIO14 / D5)接腳,並且要寫入初始化的資料給予 ILI9341 MOSI(GPIO17 / D7)或 MISO(GPIO12 / D6),這樣便可以令 ILI9341 等待顯示數據資料。

ESP-12F ILI9341 SPI TFT LCD 液晶屏
ESP-12F ILI9341 SPI TFT LCD 液晶屏初始化程式:
/*********************************************************************
* Function:  void ili9341_hspi_init(void)
* PreCondition: none
* Input: none
* Output: none
* Side Effects: none
* Overview: Initializes IO, Call Reset LCD
* Note: none
*  1.- VCC - VCC
*  2.- GND - GND
*  3.- CS  - D3 (GPIO0)
*  4.- RST - VCC      
*  5.- DC  - D4 (GPIO2)
*  6.- MOSI- D7 (GPIO13)
*  7.- SCK - D5 (GPIO14)
*  8.- LED - VCC    
********************************************************************/
void ICACHE_FLASH_ATTR ili9341_hspi_init(void)
{
            uint16_t initColor = 0;
            hspi_init();

            TFT_CS_INIT;
            TFT_DC_INIT;
            TFT_RST_INIT;

            TFT_RST_ACTIVE;
            os_delay_us(10000);
            TFT_RST_DEACTIVE;
            os_delay_us(1000);

            ili9341_hspi_readId();
            ili9341_hspi_ResetDevice();
            ili9341_hspi_fillRectangle(MIN_TFT_X, MAX_TFT_X, MIN_TFT_Y, MAX_TFT_Y, &initColor, 1);
}

ESP-12F ILI9341 SPI TFT LCD 液晶屏顯示程式:
//Initialize ILI9341 TFT LCD
ili9341_hspi_init();

//Set Vertical Screen
ili9341_Display_Dir(0);
ili9341_Scan_Dir(2);

ili9341_hspi_String("BugWorkShop   ESP12Fv30", 0,   0, 1, ILI9341_RED, ILI9341_BLACK);
ili9341_hspi_String("ILI9341 SPI LCD     r05", 0,  16, 1, ILI9341_GREEN, ILI9341_BLACK);
ili9341_hspi_String("Blue Color       r05", 0,  32, 2, ILI9341_BLUE, ILI9341_BLACK);
ili9341_hspi_Line(0,   0,   0, 319, ILI9341_WHITE);
ili9341_hspi_Circle(119, 199, 120, ILI9341_YELLOW);

ESP-12F ILI9341 SPI TFT LCD 液晶屏顯示
ESP-12F ILI9341 SPI TFT LCD 液晶屏顯示
ESP8266 程式:DIY - ESP12F - 050 - ILI9341 SPI 05 - New Version - 20180212

相關網址:
※ DIY - PIC24:2.8吋TFT LCD ILI9341電阻式觸摸液晶屏介紹(十六)
※ DIY - PIC24:ILITEK(奕力)ILI9341 驅動蕊片介紹(十七)
※ DIY - PIC24:2.8吋TFT LCD ILI9341 電阻式觸摸液晶屏電路設定(十八)
※ DIY - PIC24:PIC24FJ64GA008 連接 2.8吋TFT LCD 液晶屏電路連接(十九)
※ DIY - PIC24:PIC24FJ64GA008 ILI9341 LCD 液晶屏初始化(二十)
※ DIY - PIC24:PIC24FJ64GA008 ILI9341 LCD 讀寫方式(二十一)
※ DIY - PIC24:PIC24FJ64GA008 ILI9341 和 LCD1602 顯示(二十二)
※ DIY - PIC24PIC24FJ64GA008 ILI9341 LCD 液晶屏測試程式(二十三)
※ DIY - ESP8266:SSD1306 0.96吋 SPI OLED 屏電路(二十三)
※ DIY - ESP8266:ILITEK(奕力)ILI9341 驅動芯片的 SPI 介紹(九十四)
※ DIY - ESP8266:ILITEK(奕力)ILI9341 2.4吋 SPI TFT LCD 液晶屏介紹(九十五)
※ DIY - ESP8266:ESP-12F ILI9341 2.4吋 SPI TFT LCD 液晶屏電路(九十六)

2018年 5月 17日 天氣報告
氣溫:28.2@ 20:10
相對濕度:百分之 76%
天氣:天色大致良好

2 則留言:

  1. 你好!我也正在用這個driver的SPI介面在推屏,
    目前遇到一個問題, 可跑圖成功, 卻read不到driver ID,不確定read的程序上出了甚麼問題所以讀不到
    想請教你這兩行的function內容做了些甚麼?
    ili9341_hspi_readId();
    ili9341_hspi_ResetDevice();

    回覆刪除
    回覆
    1. ili9341_hspi_readId(); 是讀取 ILI93441 內的 0xd3資料,ili9341_hspi_ResetDevice();是 ILI9341 的初始化。

      刪除