st7735-TFT測試-使用TFT-eSPI庫載入圖片(3)-ESP32

 st7735-TFT測試-使用TFT-eSPI庫載入圖片(3)-ESP32

接線

(更正:
            SCL-->ESP32(D18)
           SDA-->ESP32(D23)




1.先到此下載程式庫:https://github.com/Bodmer/TFT_eSPI

  並上傳至ArduinoIDE的library

2.裡有幾個設定必須要更改成和自己使用的顯示屏一樣型號的設置

<C:\Users\<用戶名>\Documents\Arduino\libraries\TFT_eSPI>,用同樣的方法找到庫文件,並打開<User_Setup.h>文件,當我們打開<User_Setup.h>文件後,需要對文件中的內容進行簡單的修改即可使用,修改的目的主要是為了和我們選擇的屏幕驅動型號相匹配文件,打開後按照下圖內容進行修改,在眾多的驅動文件中,選擇驅動ST7735,其他用不到的註釋掉,如果你使用的屏幕是其他類型的驅動也可以根據自己的驅動進行選擇

<E:\blairan\arduino\portable\sketchbook\libraries\TFT_eSPI>,並打開<User_Setup.h>文件,如果沒有專用的查看軟件的話可以使用最普通的記事本打開


接著設置屏幕顯示的顏色和屏幕的尺寸大小,我們設置屏幕的寬度為128,屏幕顏色有RGB和BGR兩種類型,什麼是RGB和BGR呢,你可以把它簡單的理解為紅綠藍的排列順序

接下来是SPI引脚的设置,按照下图中的引脚设置即可
// For ESP32 Dev board (only tested with GC9A01 display)
// The hardware SPI can be mapped to any pins

#define TFT_MOSI 23 // In some display driver board, it might be written as "SDA" and so on.
#define TFT_SCLK 18
#define TFT_CS   5  // Chip select control pin
#define TFT_DC   2  // Data Command control pin
#define TFT_RST  4  // Reset pin (could connect to Arduino RESET pin)
//#define TFT_BL   22  // LED back-light

下面是字體的設置,從FONT1到FONT8,數字越大字號越大,我們屏幕比較小,本次程序中使用FONT1和FONT2兩種字體就夠了
最後是SPI時鐘頻率的設置,時鐘頻率會影響屏幕顯示的刷新速度,ST7735驅動的時鐘頻率不建議超過27MHz,否則可能會不工作

3.下載lcd-image-converter,將圖片轉為16bit數組
首先下載lcd-image-converter,執行lcd-image-converter.exe
開啓圖片之前,建議先用小畫家將圖片的寛高設置成顯示屏的範圍內,例如我使用的是tft-st7735 128x128,相片大小就設在這範圍內。

4.設定取模參數
第一步,點擊<選單>的<Options>選項,设置取模参数 rgb565、16色

第三步、點擊<Show Preview>按鈕

第四步、複製生成的16進制數據到bmp.h文件中



5.在Arduino的程式碼

先建立一個bmp.h檔
將剛剛取模的16進位數組貼進下方
  1. #include <pgmspace.h>
  2. const uint16_t partlycloudy [] PROGMEM = {
  3. };
它會像下面圖示一樣

再到主程式裡加入以下代碼,之後上傳到板子裡
#include <SPI.h>
#include <TFT_eSPI.h>
#include "bmp.h"

TFT_eSPI tft=TFT_eSPI();

void setup() {
  tft.begin();   //初始化
  tft.setSwapBytes(true); //這一行一定要加才會正常顯示圖片
  tft.fillScreen(TFT_BLACK);//屏幕颜色
  tft.setRotation(3);
  tft.pushImage(0, 25, 126, 78, boy);//(x,y,w,h,img)显示图片
}

void loop() {
 
}














留言

這個網誌中的熱門文章

ESP32-CAM燒錄出現fd_forward.h: No such file or directory錯誤信息<解決方案>