ESP32 TFT液晶屏配置与屏幕旋转问题处理
创作时间:
作者:
@小白创作中心
ESP32 TFT液晶屏配置与屏幕旋转问题处理
引用
CSDN
1.
https://blog.csdn.net/HuangBJ200/article/details/136839216
本文主要介绍如何在ESP32上配置TFT液晶屏,包括硬件连接、软件配置以及屏幕旋转问题的解决方案。通过本文,读者可以了解如何使用TFT_eSPI库来驱动2.8寸TFT液晶屏,并解决显示颜色不正常和屏幕旋转不对齐的问题。
平台说明
硬件部分
- 2.8寸TFT液晶屏,驱动为ST7789
- 触摸屏,驱动为GT911
- 主控:ESP32-S3-WROOM-1U
软件部分
- 开发环境:VS code + platformIO + arduino
- 图形库:LVGL
- 驱动库:TFT_eSPI
相关配置
配置文件路径:.pio\libdeps\esp32-s3-devkitm-1\TFT_eSPI\User_Setup.h
1. 选择驱动型号:ST7789
#define ST7789_DRIVER
2. 选择屏幕尺寸大小:240*320
#define TFT_WIDTH 240
#define TFT_HEIGHT 320
3. 反色关闭,不关闭可能会出现显示颜色不正常
#define TFT_RGB_ORDER TFT_BGR
#define TFT_INVERSION_OFF
4. 配置硬件引脚IO,#define TOUCH_CS -1:关闭touch,不会调用touch函数
#define TFT_MISO 13
#define TFT_MOSI 11
#define TFT_SCLK 12
#define TFT_CS 10
#define TFT_DC 9
#define TFT_RST 8
#define TFT_BL 7
#define TOUCH_CS -1
5. #define TOUCH_CS -1,所以注释SPI_TOUCH_FREQUENCY
// #define SPI_TOUCH_FREQUENCY 2500000
屏幕旋转问题
现象
调用tft.setRotation(3);时显示出现未对齐(原因未知)。
解决方法
有以下两种方法:
方法一:在lv_hal_disp.c中的lv_disp_drv_init函数中添加
driver->sw_rotate = 1;
driver->rotated = LV_DISP_ROT_180;
方法二:在LVGL初始化代码中添加
lv_disp_drv_init(&disp_drv);
disp_drv.hor_res = TFT_WIDTH;
disp_drv.ver_res = TFT_HEIGHT;
disp_drv.flush_cb = my_disp_flush;
disp_drv.draw_buf = &draw_buf;
disp_drv.sw_rotate = 1;
disp_drv.rotated = LV_DISP_ROT_90;
总结
- 在测试TFT屏显示时,如果出现显示颜色与设置颜色不匹配,需要检查
User_Setup.h中的TFT_INVERSION_OFF和TFT_RGB_ORDER TFT_BGR是否正确设置。 - 调用
tft.setRotation(3);设置旋转时,如果显示错误,可以尝试上述两种屏幕旋转解决方案。
热门推荐
射频热凝:出汗异常治疗新突破!
鸡肉、牛肉助你告别多汗烦恼!
夏季多汗症护理全攻略:从生活到饮食,这些妙招让你告别汗水困扰
WTT新加坡大满贯赛落幕,国乒包揽五项冠军
沧州与天津:一南一北的绝美风光
如何进行有效的债务管理?这些债务管理策略有哪些风险和决策?
领导生日祝福语:搞笑又走心!
给领导送上最走心的生日祝福!
职场送祝福,你get到了吗?
职场生日派对:如何用创意和诚意增强团队凝聚力?
开心果选购指南:黄壳与白壳的区别及挑选技巧
开心果的世界真奇妙!
周末打卡南翔古镇:小笼包吃到撑!
韩国年轻人扎堆打卡:上海外滩、豫园和迪士尼
特定日子的禁忌:文化传承与心理影响
无泪配方+天然成分:宝宝洗发水大揭秘!
青春期洗发水选购全攻略:从成分到使用建议
准爸爸有抑郁症怎么办呢
跟着郑秀文吃遍汕头:从牛肉丸到海鲜大餐
七宝古镇:上海必打卡的休闲娱乐胜地
七宝古镇:穿越千年的江南秘境
七宝老街美食探店攻略:千年古镇里的舌尖记忆
十一小长假宝鸡深度游:必打卡三大景点
宝鸡古建园林:穿越千年的艺术盛宴
红河谷国家森林公园:宝鸡必打卡的自然景观
宝鸡温泉季:泡汤打卡攻略来啦!
王者荣耀:后羿普攻流出装攻略
女人想让你追?这7个信号别错过!
解码女性心动信号:从安全感到归属感
过年怎么能少了开心果,一文告诉你开心果为什这么贵