前言
之前在ESP32上运行LVGL一直使用的是SPI串口驱动LCD, 当时就比较好奇如果换成了并口驱动LCD会对帧率有何影响.于是乎终于在2022年后买入了一块并口屏幕来测试一下.
测试项目
- 使用LVGL自带的lv_demo_music,开启LV_DEMO_MUSIC_AUTO_PLAY
- 使用TFT_eSPI自带的Viewport_graphicstest
测试结果
运行LVGL自带的lv_demo_music
对照组序号 | 屏幕参数 | ESP32运行频率 | LVGL缓冲参数 | SPI速率 | TFT_eSPI版本 | LVGL版本 | 帧率 |
---|---|---|---|---|---|---|---|
1 | 240x240 1.54寸 SPI LCD | 240MHz | 240*120 启用DMA,未使用双缓冲 | 60MHz | 2.3.70 | 8.1.1-dev | 26帧 |
2 | 240x240 1.33寸 8位并口 LCD | 240MHz | 240*120 未使用双缓冲 | \ | 2.3.70 | 8.1.1-dev | 28帧 |
感觉帧率差异不是很大的样子.
运行TFT_eSPI自带的Viewport_graphicstest
对照组序号 | 屏幕参数 | ESP32运行频率 | SPI速率 | TFT_eSPI版本 |
---|---|---|---|---|
1 | 240x240 1.54寸 SPI LCD | 240MHz | 60MHz | 2.3.70 |
2 | 240x240 1.33寸 8位并口 LCD | 240MHz | \ | 2.3.70 |
运行时候明显感觉到并口的绘制速度更快,不过还是得数据说话,于是有如下Log
8位并口结果
1 | TFT_eSPI library test! |
串口结果
1 | TFT_eSPI library test! |
并口驱动情况下绘制时间几乎是串口驱动绘制时间的一半.
果然还是有提升的.
至于为什么在LVGL中拉不开差距,经过群友Principle点拨后意识到,运行LVGL时候CPU性能方面出现了瓶颈,我的ESP32是初代版本,如果换成最新的ESP32 S3则会拉开差距.