STM32系列-CubeIDE、CubeMX配置GT系列GT911触摸芯片教程(图文快速上手)_stm32 gt911 移动

这篇博客介绍了如何使用STM32 CubeIDE和CubeMX来配置GT911触摸芯片,包括触控IC的引脚、中断、I2C句柄和寄存器定义。此外,还提供了触摸点的数据结构和触摸状态的枚举类型,以及初始化和读取数据的函数。最后,博主分享了个人的嵌入式开发经验和资料包,供读者学习和提升。
摘要由CSDN通过智能技术生成

// 触摸IC引脚和中断
#define GTP_RST_GPIO_PORT GTP_RST_GPIO_Port
#define GTP_RST_GPIO_PIN GTP_RST_Pin
#define GTP_INT_GPIO_PORT GTP_INT_GPIO_Port
#define GTP_INT_GPIO_PIN GTP_INT_Pin
//#define GTP_INT_EXTI_IRQ EXTI4_IRQn //

/*I2C句柄*/
#define GT911_I2C hi2c3

// 触摸IC设备地址
#define GT911_DIV_W 0x28
#define GT911_DIV_R 0x29

//GT911 部分寄存器定义
#define GT_CTRL_REG 0X8040 //GT911控制寄存器
#define GT_CFGS_REG 0X8047 //GT911配置起始地址寄存器
#define GT_CHECK_REG 0X80FF //GT911校验和寄存器
#define GT_PID_REG 0X8140 //GT911产品ID寄存器

#define GT_GSTID_REG 0X814E //GT911当前检测到的触摸情况,第7位是触摸标志位,低4位是触摸点数个数

#define GT_TPD_Sta 0X8150 //触摸点起始数据地址
#define GT_TP1_REG 0X8150 //第一个触摸点数据地址
#define GT_TP2_REG 0X8158 //第二个触摸点数据地址
#define GT_TP3_REG 0X8160 //第三个触摸点数据地址
#define GT_TP4_REG 0X8168 //第四个触摸点数据地址
#define GT_TP5_REG 0X8170 //第五个触摸点数据地址

#define GT_TOUCH_MAX 5 //对于gt911,最多同时获取5个触摸点的数据

typedef enum
{
X_L = 0,
X_H = 1,
Y_L = 2,
Y_H = 3,
S_L = 4,
S_H = 5
}Data_XYS_P; //数据X、Y、触摸大小数据偏移量

typedef enum
{
TOUCH__NO = 0x00, //没有触摸
TOUCH_ING = 0x80 //被触摸
}TOUCH_STATE_enum; //触摸状态

typedef struct
{
uint16_t X_Point; //X坐标
uint16_t Y_Point; //Y坐标
uint16_t S_Point; //触摸点大小
}XY_Coordinate; //触摸点坐标

/*触摸结构体*/
typedef struct
{
uint8_t Touch_State ; //触摸状态
uint8_t Touch_Number ; //触摸数量
XY_Coordinate Touch_XY[GT_TOUCH_MAX] ; //触摸的x坐标,对于gt911最多5个点的坐标
}Touch_Struct; //触摸信息结构体

/*外部变量区*/
extern Touch_Struct User_Touch;

/*外部函数区*/
void GTP_Init(void);
void GTXXXX_Scanf(void);
void GTP911_Test(void);

#endif /* INC_GT9XX_H_ */


gt911.c代码



/*
* gt9xx.

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值