[ESP][驱动]GT911 ESP系列驱动
创始人
2024-05-14 16:09:15

GT911ForESP

GT911在ESP系列上的驱动,基于IDF5.0,ESP32S3编写

本库使用面向对象思想编写,可创建多设备多实例

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

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

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

1. IDF 4.4 是否可用?

理论可用,未经实践

2. 注意点

以下内容基于编程开发手册REV11.0

1. 0x8040寄存器貌似不再支持软重启

如果按照旧手册使用软重启,读取0x814E会一直返回128(0x80),即使对寄存器写入0。也是坑,如果你买的设备使用的芯片出厂较早,那么网上一些驱动可用。但是我是新芯片,没错又浪费时间了。。。

image-20230120202422455

2. 0x814E状态寄存器必须在读取完或开机之后写入0再读取

这个挺坑的,我就被坑了。。一开始找到的是旧的编程文档,并没有说明这一项。。时间被白白浪费了。。。

image-20230120202625308

3. 目录结构

├─components
│  └─Alfred_GT911
│      │  Alfred_GT911.c 驱动文件
│      │  CMakeLists.txt
│      │
│      └─includes
│              Alfred_GT911.h
│
└─mainCMakeLists.txtGT911ForESP.c 示例文件

4. 如何移植?

1. Alfred_GT911结构体修改

/**类结构体**/
//根据不同平台修改此项
typedef struct {i2c_config_t gt911_i2c_config; i2c_port_t i2c_num;uint8_t gt911_addr;uint16_t height;uint16_t width;uint8_t rotation;TP_point_info points_info[TOUCH_POINT_TOTAL]; //用于存储五个触控点的坐标
}Alfred_GT911;

2. GT911_write_regs() & GT911_read_regs()修改

这两个函数定义了数据发送结构,构成其读写协议。

编写协议函数时注意传入类实例指针,不传入也可以,不过上面的结构体就没有意义了

不同平台按照以下形式构建:

image-20230120203507285

3. 日志打印函数修改

GT911_init()函数中:

    uint8_t buf[5] = {0};GT911_read_regs(alfredGt911, GT911_PRODUCT_ID, buf, 4);printf("GT911 PRODUCT ID: %s\n", buf);

替换成平台对应的打印函数,如果不想要,删除即可。

5. 参考驱动

https://github.com/TAMCTec/gt911-arduino

https://gitee.com/andida/esp32s3-gt911

此库在我的芯片不可用,修改后可用,已在库中提交Pull Request

相关内容

热门资讯

阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...