[ESP][驱动]ST7701S RGB屏幕驱动

ST7701SForESP

ST7701S ESP系列驱动,基于ESP-IDF5.0,ESP32S3编写。

本库只负责SPI的配置,SPI设置屏幕信息两方面。由于RGB库和图形库的配置无法解耦,具体使用的图形库需要自行配置添加,**本示例默认绑定LVGL,使用IDF5示例rgb_panel**进行测试

SPI的指令,地址配置信息来源较多,其中有从Arduino_GFX库中移植,在此感谢陈亮大佬。

本库支持SPI配置和IO拓展IC配置屏幕,使用面向对象思想编程,支持多设备多实例,但不建议。

Github,Gitee同步更新,Gitee仅作为下载仓库,提交Issue和Pull request请到Github

Github: https://github.com/taxue-alfred/ST7701SForESP

Gitee: https://gitee.com/TaXue_TianXing/ST7701SForESP

1. 目录结构

├─examples
│      ST7701SForESP_example.c //rgb_panel主函数示例(需要克隆rgb_panel)
│
└─Vernon_ST7701S
    │  Vernon_ST7701S.c
    │
    └─includes
            Vernon_ST7701S.h

2. 使用方法

1. LVGL报错解决

format %lu expects argument of type ‘long unsigned int’ but argument 3 has type long long unsigned int

如果在编译过程中未出现此类报错,可以直接跳过

image-20230122220934556

此处进行强制类型转换即可,修改之后编译通过即可。

2. 嵌入项目

2.1 克隆项目
//以下方式二选一即可,链接Github无法访问自行更换Gitee
git clone https://gitee.com/TaXue_TianXing/ST7701SForESP.git //直接克隆
git submodule add https://gitee.com/TaXue_TianXing/ST7701SForESP.git //作为模块克隆
2.2 调用示例
Vernon_ST7701S_handle vernon_st7701s = ST7701S_newObject(SPI_SDA, SPI_SCL, SPI_CS, SPI3_HOST, SPI_METHOD);
ST7701S_screen_init(vernon_st7701s, 2); //后方数字表示使用的配置下标
ST7701S_delObject(vernon_st7701s);
2.3 加入Cmake

如果在components文件夹下作为模组使用,那么只需要命令行中

idf.py reconfigure

如果在其他文件夹下,那么需要设置CmkaeLists.txt加入编译列表,之后再执行上面的命令。

3. menuconfig配置PSRAM

配置如下
image-20230122223142648

这一步特别重要,不然会出现屏幕疯狂滚动的现象

这里从CLion环境截图,menuconfig都一样

开启 Cache fetch instruction from SPI RAMCache load read only data from SPI RAM

image-20230219180440612

4. 解决颜色显示不纯的问题

最明显的就是灰色不是纯灰色,偏黄色,而且字体是“虚”的

原因是PCLK上跳沿下跳沿与数据时间不匹配问题。将

.flags.pclk_active_neg = true

改为

.flags.pclk_active_neg = false

即可。截图如下:

image-20230517163259824 image-20230517163249587

3. 如何移植

修改ST7701S_newObject函数即可,即只修改初始化部分以及动态分配函数部分,应该注意,再分配之后,应当为分配的内存区域全部置0。之后初始化SPI使其可以发送1 + 8 = 9 bit的数据方式

4. 参考库

https://github.com/moononournation/Arduino_GFX

https://www.bilibili.com/video/BV1hB4y197YN/

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值