本帖最后由 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----GPIO49 TFT_RS----GPIO50 TFT_DC----GPIO52 TFT_MOSI----GPIO29 TFT_SCLK----GPIO28 TFT_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[318];
- 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 依然能开发出不俗的显示效果,其作用不可小觑!
|