[ESP][驱动]GT911 ESP系列驱动

news/2024/4/23 22:50:01/

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


http://www.ppmy.cn/news/18401.html

相关文章

Java 对象处理流(ObjectOutputStream\ObjectInputStream)

文章目录前言什么是对象流?基本介绍ObjectOutputStreamObjectInputStream对象处理流的使用细节前言 处理流:是对一个已存在的流进行处理和封装,通过所封装的流的功能调用实现对数据的操作。而处理流中也有不同的分类,此片介绍的是…

蓝桥杯重点(C/C++)(随时更新)

目录 1 技巧 1.1 取消同步(节约时间,甚至能多骗点分,最好每个程序都写上) 1.2 万能库(可能会耽误编译时间,但是省脑子) 1.3 蓝桥杯return 0千万别忘了写!! 1.4 …

【JavaWeb】前端开发三剑客之CSS(上)

✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【JavaWeb】 ✈️✈️本篇内容:CSS从零开始学习! 🚀🚀代码托管平台github:JavaWeb代码存放仓库! ⛵⛵作…

#C. wll 的糖果分配

说明过年啦!wll 带着好多好多的糖果回到家里,打算分给弟弟妹妹们她一共带回了 66 种不同的糖果,第 ii 种糖果的美味度为 ii,共有 a_iai 颗但是弟弟们和妹妹们不想在一起玩,他们想分别拿走糖果,各自玩耍那么…

vue3实现一个抽奖小项目

前言 在公司年会期间我做了个抽奖小项目,我把它分享出来,有用得着的可以看下。浏览链接:http://xisite.top/original/luck-draw/index.html项目链接:https://gitee.com/xi1213/luck-draw (欢迎star!)项目截图: 实现目…

Gulp.Task 正解

gulp task 实现过程 今天从源码的角度分析下 gulp 中 task 的实现过程。多个 task 是如何执行??? 等等 gulp 插件分布图 其实通过上述截图可以看到,其实整个 gulp 内部什么逻辑都没有,都是由一个一个插件组成的。上述的…

4-1指令系统-指令格式

文章目录一.指令的基本格式1.结构2.长度3.根据操作数地址码数目分类(1)零地址指令(2)一地址指令(3)二地址指令(4)三地址指令(5)四地址指令二.扩展操作码指令格…

现场工程师出手-PCAPHub与云IP实现异地LAN工业联测

在去年,因为众所周知的因素影响,项目的甲方主动提出延缓设备的交付。作为乙方,尽管项目延缓是甲方提出的,但依旧希望按期交付,这样才能回款,熬过一年。其实,2022年初,几类传感器、压…

【数据结构】万字深入浅出讲解顺序表(附原码 | 超详解)

🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:C语言实现数据结构 💬总结:希望你看完…

洛谷 P1100 高低位交换

高低位交换 题目描述 给出一个小于 2322^{32}232 的非负整数。这个数可以用一个 323232 位的二进制数表示(不足 323232 位用 000 补足)。我们称这个二进制数的前 161616 位为“高位”,后 161616 位为“低位”。将它的高低位交换&#xff0c…

python循环语句

Python循环语句 文章目录Python循环语句一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤1.While循环结构2.While无限循环3.For循环语法4.break语句和continue语句一、实验目的 掌握循环结构的语法 二、实验原理 Python中的循环语句有 for 和 while。 Python…

从汇编的角度去审视函数的调用【函数栈帧】

文章目录函数栈帧栈寄存器相关汇编指令函数栈帧的创建函数栈帧的销毁函数栈帧 我们在写C语言代码的时候,经常会把一个独立的功能抽象为函数,所以C程序是以函数为基本单位的。 那函数是如何调用的?函数的返回值又是如何待会的?函数…

Towards Capacity-Aware Broker Matching: From Recommendation to Assignment

文章目录摘要IntromotivationA. Limited Broker CapacityB.超载的顶级经纪人摘要 在线房地产平台越来越受欢迎,其核心问题是撮合经纪人与客户进行潜在的房屋交易。主流平台通过top-k推荐来匹配经纪人。我们通过大量的数据分析观察到,这种top-k推荐往往会…

100天精通Python(数据分析篇)——第72天:Pandas文本数据处理方法之判断类型、去除空白字符、拆分和连接

文章目录每篇前言一、Python字符串内置方法1. 判断类型2. 去除空白字符3. 拆分和连接二、Pandas判断类型1. str.isspace()2. str.isalnum()3. str.isalpha()4. str.isdecimal()5. str.isdigit()6. str.isnumeric()7. str.istitle()8. str.islower()9. str.isupper()三、Pandas去…

Prometheus 配置身份认证

Prometheus 版本 2.41.0 平台统一监控的介绍和调研直观感受PromQL及其数据类型PromQL之选择器和运算符PromQL之函数Prometheus 配置身份认证 Prometheus 使用默认方式安装是不带有身份证认证和TLS,需要单独配置开启。 Prometheus 配置文件为yaml格式,并…

韩顺平老师的linux基础课(复习笔记)

今天听了韩老师的课程,深受启发啊!!! 卖油翁的“我亦无他,唯手熟尔”,只是手法熟练罢了!! 还有老黄牛的坚持,别人把时间都放在努力上,而我把时间放在选择上&a…

Visual Studio 17.5 拼写检查器预览版现已推出,来说说你的看法吧

写在前面: Visual Studio17.5版本已添加拼写检查器功能,Visual Studio 中的许多功能旨在帮助你编写所需的代码。Visual Studio帮助你确保代码的编译,甚至可以帮助代码样式。现在它甚至可以确保您的拼写准确。Visual Studio 17.5 preview 3 引…

LINUX软中断-ksoftirqd

前言 在上一篇 LINUX软中断-softirq的描述中,提到过ksoftirqd,这篇文章就介绍ksoftirqd ksoftirqd 是什么? ksoftirqd 是个内核线程,在创建的时候是绑定cpu的,每一个core对应生成一个ksoftirqd 线程 比如当前系统有…

4.2w字,详细的带你认识基础I/O【Linux--基础IO】

前言 相信大家最开始都挺疑惑的,什么I/O。在计算机操作系统中,所谓的I/O实则就是输入(Input)和输出(Output),也可以理解为读(Read)和写(Write)&…

【中科微北斗+GPS模块经纬度数据解析详细教程-附免费代码工程】

中科微北斗GPS模块经纬度数据解析详细教程-附免费代码工程简介准备工作PC端需要用到的工具代码下载地址GD32F103C8T6最小系统板代码实现GD32串口引脚定义如下:串口的初始化串口0初始化代码:串口1初始化代码串口的输入串口0的输入代码如下:串口…