Lily李 发表于 2025-9-29 17:52

FireBeetle 2 ESP32 P4 开发板以SPI方式驱动TFT显示屏

本帖最后由 Lily李 于 2025-9-29 17:54 编辑

申请原创
前面介绍了以模拟的方式驱动TFT显示屏,这次再介绍以SPI方式来驱动TFT显示屏。显示屏仍以P1接口为主来进行连接,见图1所示。相对于OLED屏来讲,TFT屏的表现力会更强些, 要以SPI方式在FireBeetle 2 ESP32 P4 开发板上驱动TFT显示屏,可以P1接口为主来进行连接,该接口见图1所示。
图1 P1接口

TFT屏与开发板的连接关系为:TFT_CS----GPIO49TFT_RS----GPIO50TFT_DC----GPIO52TFT_MOSI----GPIO29TFT_SCLK----GPIO28TFT_BL----GND

为使用SPI来驱动TFT显示屏,在ArduinoIDE的开发环境下要预先下载UTFT库,并放置到适当位置,否则会影响调用。为进行显示,其初始的准备条件为:#include <UTFT.h>#include <SPI.h> extern uint8_t SmallFont[];UTFT myGLCD ( ILI9341_S5P, 29, 28, 49,50,52 );

相应的设置函数为:void setup () {
    randomSeed ( analogRead ( 0 ) );
    myGLCD.InitLCD ();
    myGLCD.setFont ( SmallFont );
}
实现相应显示效果的循环处理函数为:void loop () {
    int buf;
    int x, x2;
    int y, y2;
    int r;
    myGLCD.clrScr ();
    myGLCD.setColor ( 255, 0, 0 );
    myGLCD.fillRect ( 0, 0, 319, 13 );
    myGLCD.setColor ( 64, 64, 64 );
    myGLCD.fillRect ( 0, 226, 319, 239 );
    myGLCD.setColor ( 255, 255, 255 );
    myGLCD.setBackColor ( 255, 0, 0 );
    myGLCD.print ( String("* Universal Color TFT Display Library *"), CENTER, 1 );
    myGLCD.setBackColor ( 64, 64, 64 );
    myGLCD.setColor ( 255, 255, 0 );
    myGLCD.print ( String("<http://www.RinkyDinkElectronics.com/>"), CENTER, 227 );
   ...
}
经程序上传,其测试效果如图2至图5所示。
图2 波形效果

图3 曲线效果

图4 波形曲线


图5 绘制矩形

本人觉得使用Arduino IDE 依然能开发出不俗的显示效果,其作用不可小觑!
页: [1]
查看完整版本: FireBeetle 2 ESP32 P4 开发板以SPI方式驱动TFT显示屏