esp单片机下arduino_gfx不相干显示驱动优化对flash空间的占用对比

文章比较了ESP32和ESP8266下使用不同TFT模块驱动(arduino_gfx和tft_espi)的内存和闪存占用情况,结果显示优化后的驱动占用空间微小,且对整体性能影响不大,主要关注点在于减少编译时间。

一般情况下,很多esp32或者esp8266下的tft模块驱动都会包含很多种,而我们只需要其中一种,那就有个疑问这些被编译进的显示驱动到底占用了多少空间,是否需要把他优化掉?

这是默认的驱动列表:

84个文件,430k

 

这是优化后的驱动列表,只保留了两种驱动

6个文件,81.6k

优化前编译占用

esp8266

RAM:   [====      ]  44.6% (used 36540 bytes from 81920 bytes)
Flash: [===       ]  33.9% (used 353793 bytes from 1044464 bytes)

esp32

RAM:   [=         ]   6.7% (used 21972 bytes from 327680 bytes)
Flash: [===       ]  31.0% (used 406525 bytes from 1310720 bytes)

ESP32 - S3 - LCD - 2上使用ARDUINO_GFX显示GIF,可参考以下方法及相关内容: ### 库的加载 ARDUINO_GFX是功能丰富的 Arduino IDE 兼容图形和字体库,适用于 32 位处理器,针对 RP2040、STM32、ESP8266 和 ESP32 类型进行了性能优化,可以使用 Arduino IDE 的 Library Manager 加载该库[^1]。 ### 利用DMA提高性能 直接内存访问 (DMA) 可与带有 SPI 接口显示器的 ESP32 处理器一起使用,以提高渲染性能[^1]。 ### 示例代码思路 以下是一个简单的示例代码框架来展示如何使用ARDUINO_GFX显示GIF,代码可能需要根据实际硬件连接和GIF文件进行调整。 ```cpp #include <Arduino_GFX_Library.h> #include <GIFDecoder.h> // 定义显示器相关参数 #define TFT_CS 5 #define TFT_DC 2 #define TFT_RST 4 Arduino_GFX *gfx = new Arduino_GFX(240, 240, new Arduino_HWSPI(TFT_CS, -1, -1, -1, TFT_DC, -1, 40000000)); GIFDecoder gifDecoder; void setup() { gfx->begin(); gfx->fillScreen(BLACK); // 初始化GIF解码器 gifDecoder.begin(); } void loop() { if (gifDecoder.open("your_gif_file.gif")) { while (gifDecoder.nextFrame()) { gfx->drawRGBBitmap(0, 0, gifDecoder.getFrame(), gifDecoder.getWidth(), gifDecoder.getHeight()); delay(gifDecoder.getDelay()); } gifDecoder.close(); } delay(1000); } ``` ### 代码解释 1. **头文件引入**:引入`Arduino_GFX_Library.h`和`GIFDecoder.h`分别用于图形显示和GIF解码。 2. **显示器参数定义**:定义了SPI接口的片选(CS)、数据/命令(DC)和复位(RST)引脚。 3. **初始化**:在`setup()`函数中初始化显示器和GIF解码器。 4. **循环显示**:在`loop()`函数中打开GIF文件,逐帧显示,并根据GIF的延迟时间进行适当延迟。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值