Files
player/Project/Src/Drive/Source/touch_043.c

413 lines
13 KiB
C
Raw Normal View History

2025-06-27 00:32:57 +08:00
/***
***************************************************************************************
* @file touch_043.c
* @version V1.0
* @date 2018-1-1
2025-07-05 19:47:28 +08:00
* @author <EFBFBD><EFBFBD><EFBFBD>ͿƼ<EFBFBD>
* @brief GT9147<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
***************************************************************************************
* @description
*
2025-07-05 19:47:28 +08:00
* ʵ<EFBFBD><EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>STM32F429<EFBFBD><EFBFBD><EFBFBD>İ<EFBFBD> + 4.3<EFBFBD><EFBFBD>RGBҺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>Ļ<EFBFBD>ͺ<EFBFBD>RGB043M1)
* <EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>https://shop212360197.taobao.com
* QQ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD><EFBFBD>536665479
2025-06-27 00:32:57 +08:00
*
2025-07-05 19:47:28 +08:00
>>>>> <EFBFBD>ļ<EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
*
2025-07-05 19:47:28 +08:00
* 1.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صIJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2.ʹ<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>IIC
* 3.ͨ<EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>Ĭ<EFBFBD><EFBFBD>Ϊ100KHz
2025-06-27 00:32:57 +08:00
*
2025-07-05 19:47:28 +08:00
>>>>> <EFBFBD><EFBFBD>Ҫ˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
*
2025-07-05 19:47:28 +08:00
* 1.GT9147<EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>úã<EFBFBD><EFBFBD>û<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2.<EFBFBD><EFBFBD><EFBFBD>޸Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>
* 3.<EFBFBD>û<EFBFBD><EFBFBD>޸IJ<EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD> GT9XX_SendCfg() <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȻƵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<EFBFBD><EFBFBD>Flashд<EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
*
***************************************************************************************
***/
#include "touch_043.h"
#include "stm32f4xx.h"
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD> Touch_Scan() <20><EFBFBD><EFB1BB><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TouchStructure touchInfo;
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD> GT9XX_SendCfg() <20><><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>IC<49><43><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
// <09><><EFBFBD><EFBFBD>GT9147<34><37><EFBFBD>Թ̻<D4B9><CCBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <09><>ϸ<EFBFBD>ļĴ<C4BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD>GT9147<34><37><EFBFBD><EFBFBD>ָ<EFBFBD>ϡ<EFBFBD>
2025-06-27 00:32:57 +08:00
//
const uint8_t GT9XX_CFG_DATA[] =
{
2025-07-05 19:47:28 +08:00
0XAA, // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>0x8047<34><37><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ð汾<C3B0><E6B1BE>
2025-07-05 19:47:28 +08:00
0XE0,0X01, // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>0x8048~0x8049<34><39><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ǰ
0X10,0X01, // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>0x804A~0x804B<34><42><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ǰ
2025-07-05 19:47:28 +08:00
0X05, // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>0x804C<34><43><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1~5<><35>
0X0E, // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>0x804D<34><44><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>INT<4E><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>XY<58><59><EFBFBD><EFBFBD><EABDBB>
0X00, // <20>üĴ<C3BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
0X88, // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>0x804F<34><46><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>»<EFBFBD><C2BB>ɿ<EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
0X0B, // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>0x8050<35><30><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>ԭʼ<D4AD><CABC><EFBFBD><EFBFBD><EAB4B0><EFBFBD>˲<EFBFBD>ֵ
2025-06-27 00:32:57 +08:00
0X80,0X08,0X50,0X3C,0X0F,0X00,0X00,0X00,0XFF,0X67, // 0X8051 ~ 0X805A
0X50,0X00,0X00,0X18,0X1A,0X1E,0X14,0X89,0X28,0X0A, // 0X805B ~ 0X8064
0X30,0X2E,0XBB,0X0A,0X03,0X00,0X00,0X02,0X33,0X1D, // 0X8065 ~ 0X806E
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X32,0X00,0X00, // 0X806F ~ 0X8078
0X2A,0X1C,0X5A,0X94,0XC5,0X02,0X07,0X00,0X00,0X00, // 0X8079 ~ 0X8082
0XB5,0X1F,0X00,0X90,0X28,0X00,0X77,0X32,0X00,0X62, // 0X8083 ~ 0X808C
0X3F,0X00,0X52,0X50,0X00,0X52,0X00,0X00,0X00,0X00, // 0X808D ~ 0X8096
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, // 0X8097 ~ 0X80A0
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0F, // 0X80A1 ~ 0X80AA
0X0F,0X03,0X06,0X10,0X42,0XF8,0X0F,0X14,0X00,0X00, // 0X80AB ~ 0X80B4
0X00,0X00,
/******************************************************************************************
2025-07-05 19:47:28 +08:00
* <EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ: 0x80B7~0X80C4
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> : <EFBFBD>޸ĸ<EFBFBD>Ӧͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>оƬͨ<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ըı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>ֱɨ<EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
*******************************************************************************************/
2025-07-05 19:47:28 +08:00
// 0X08,0X0A,0X0C,0X0E,0X10,0X12,0X14,0X16,0X18,0X1A, // ɨ<><EFBFBD><E8B7BD><EFBFBD><EFBFBD> <20><> <20><> <20><>
0X1A,0X18,0X16,0X14,0X12,0X10,0X0E,0X0C,0X0A,0X08, // ɨ<><EFBFBD><E8B7BD><EFBFBD><EFBFBD> <20><> <20><> <20><>
2025-07-05 19:47:28 +08:00
0X00,0X00,0X00,0X00, // δʹ<CEB4>õĸ<C3B5>Ӧͨ<D3A6><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
/******************************************************************************************/
2025-07-05 19:47:28 +08:00
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, // <20><><EFBFBD><EFBFBD><EFBFBD>üĴ<C3BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
0X00,0X00,0X00,0X00,0x00,0x00, // <20><><EFBFBD><EFBFBD><EFBFBD>üĴ<C3BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
/*******************************************************************************************
2025-07-05 19:47:28 +08:00
* <EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ: 0x80D5~0X80EE
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> : <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>оƬͨ<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ըı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮƽɨ<EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
********************************************************************************************/
2025-07-05 19:47:28 +08:00
// 0x00,0x02,0x04,0x05,0x06,0x08,0x0a,0x0c, // ɨ<><EFBFBD><E8B7BD><EFBFBD><EFBFBD> <20><> <20><> <20><>
// 0x0e,0x1d,0x1e,0x1f,0x20,0x22,0x24,0x28,0x29,
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
0X29,0X28,0X24,0X22,0X20,0X1F,0X1E,0X1D, // ɨ<><EFBFBD><E8B7BD><EFBFBD><EFBFBD> <20><> <20><> <20><>
0X0E,0X0C,0X0A,0X08,0X06,0X05,0X04,0X02,0X00,
2025-07-05 19:47:28 +08:00
0xff, // δʹ<CEB4>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
/*******************************************************************************************/
2025-07-05 19:47:28 +08:00
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, // ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, // ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
0XFF,0XFF,0XFF,0XFF, // ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
2025-06-27 00:32:57 +08:00
};
/*****************************************************************************************
2025-07-05 19:47:28 +08:00
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: GT9XX_Reset
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ֵ: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>λGT9147
* ˵ <EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>λGT9147<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<EFBFBD><EFBFBD>IIC<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0xBA/0xBB
2025-06-27 00:32:57 +08:00
******************************************************************************************/
void GT9XX_Reset(void)
{
2025-07-05 19:47:28 +08:00
Touch_INT_Out(); // <09><>INT<4E><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
2025-07-05 19:47:28 +08:00
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
GPIO_ResetBits(Touch_INT_PORT,Touch_INT_PIN); // <20><>INT<4E><54><EFBFBD><EFBFBD>
GPIO_SetBits (Touch_RST_PORT,Touch_RST_PIN); // <20><>RST<53><54><EFBFBD><EFBFBD>
Touch_IIC_Delay(10000);
2025-07-05 19:47:28 +08:00
// <20><>ʼִ<CABC>и<EFBFBD>λ
// INT<4E><54><EFBFBD>ű<EFBFBD><C5B1>ֵ͵<D6B5>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ϊ0XBA/0XBB
GPIO_ResetBits(Touch_RST_PORT,Touch_RST_PIN); // <20><><EFBFBD>͸<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>ʱоƬִ<C6AC>и<EFBFBD>λ
Touch_IIC_Delay(350000); // <20><>ʱ
GPIO_SetBits (Touch_RST_PORT,Touch_RST_PIN); // <20><><EFBFBD>߸<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
Touch_IIC_Delay(350000); // <20><>ʱ
Touch_INT_In(); // INT<4E><54><EFBFBD><EFBFBD>תΪ<D7AA><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Touch_IIC_Delay(350000); // <20><>ʱ
2025-06-27 00:32:57 +08:00
}
/*****************************************************************************************
2025-07-05 19:47:28 +08:00
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: GT9XX_WriteHandle
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>: addr - Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļĴ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ֵ: SUCCESS - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
* ERROR - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: GT9XX д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ˵ <EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ļĴ<EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
******************************************************************************************/
uint8_t GT9XX_WriteHandle (uint16_t addr)
2025-06-27 00:32:57 +08:00
{
uint8_t status; // ״̬<D7B4><CCAC>־λ
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
Touch_IIC_Start(); // <20><><EFBFBD><EFBFBD>IICͨ<43><CDA8>
2025-07-05 19:47:28 +08:00
if( Touch_IIC_WriteByte(GT9XX_IIC_WADDR) == ACK_OK ) //д<><D0B4><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
2025-06-27 00:32:57 +08:00
{
if( Touch_IIC_WriteByte((uint8_t)(addr >> 8)) == ACK_OK ) //д<><D0B4>16λ<36><CEBB>ַ
2025-06-27 00:32:57 +08:00
{
if( Touch_IIC_WriteByte((uint8_t)(addr)) != ACK_OK )
2025-06-27 00:32:57 +08:00
{
2025-07-05 19:47:28 +08:00
status = ERROR; // <20><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
}
2025-06-27 00:32:57 +08:00
}
}
2025-07-05 19:47:28 +08:00
status = SUCCESS; // <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
return status;
2025-06-27 00:32:57 +08:00
}
/*****************************************************************************************
2025-07-05 19:47:28 +08:00
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: GT9XX_WriteData
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>: addr - Ҫд<EFBFBD><EFBFBD><EFBFBD>ļĴ<EFBFBD><EFBFBD><EFBFBD>
* value - Ҫд<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ֵ: SUCCESS - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
* ERROR - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: GT9XX дһ<EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ˵ <EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ļĴ<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>һ<EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
******************************************************************************************/
uint8_t GT9XX_WriteData (uint16_t addr,uint8_t value)
2025-06-27 00:32:57 +08:00
{
uint8_t status;
2025-07-05 19:47:28 +08:00
Touch_IIC_Start(); //<2F><><EFBFBD><EFBFBD>IICͨѶ
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
if( GT9XX_WriteHandle(addr) == SUCCESS) //д<><D0B4>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ļĴ<C4BC><C4B4><EFBFBD>
2025-06-27 00:32:57 +08:00
{
2025-07-05 19:47:28 +08:00
if (Touch_IIC_WriteByte(value) != ACK_OK) //д<><D0B4><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
{
status = ERROR; // д<><D0B4>ʧ<EFBFBD><CAA7>
2025-06-27 00:32:57 +08:00
}
}
2025-07-05 19:47:28 +08:00
Touch_IIC_Stop(); // ֹͣͨѶ
2025-07-05 19:47:28 +08:00
status = SUCCESS; // д<><D0B4><EFBFBD>ɹ<EFBFBD>
2025-06-27 00:32:57 +08:00
return status;
}
/*****************************************************************************************
2025-07-05 19:47:28 +08:00
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: GT9XX_WriteReg
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>: addr - Ҫд<EFBFBD><EFBFBD><EFBFBD>ļĴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׵<EFBFBD>ַ
* cnt - <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
* value - Ҫд<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ֵ: SUCCESS - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
* ERROR - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: GT9XX д<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
* ˵ <EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>оƬ<EFBFBD>ļĴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
******************************************************************************************/
uint8_t GT9XX_WriteReg (uint16_t addr, uint8_t cnt, uint8_t *value)
2025-06-27 00:32:57 +08:00
{
uint8_t status = 0;
uint8_t i = 0;
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
Touch_IIC_Start(); // <20><><EFBFBD><EFBFBD>IICͨ<43><CDA8>
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
if( GT9XX_WriteHandle(addr) == SUCCESS) //д<><D0B4>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ļĴ<C4BC><C4B4><EFBFBD>
2025-06-27 00:32:57 +08:00
{
2025-07-05 19:47:28 +08:00
for(i = 0 ; i < cnt; i++) // <20><><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
{
2025-07-05 19:47:28 +08:00
Touch_IIC_WriteByte(value[i]); // д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
2025-07-05 19:47:28 +08:00
Touch_IIC_Stop(); // ֹͣIICͨ<43><CDA8>
status = SUCCESS; // д<><D0B4><EFBFBD>ɹ<EFBFBD>
2025-06-27 00:32:57 +08:00
}
else
{
2025-07-05 19:47:28 +08:00
Touch_IIC_Stop(); // ֹͣIICͨ<43><CDA8>
status = ERROR; // д<><D0B4>ʧ<EFBFBD><CAA7>
2025-06-27 00:32:57 +08:00
}
return status;
2025-06-27 00:32:57 +08:00
}
/*****************************************************************************************
2025-07-05 19:47:28 +08:00
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: GT9XX_ReadReg
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>: addr - Ҫ<EFBFBD><EFBFBD>ȡ<EFBFBD>ļĴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׵<EFBFBD>ַ
* cnt - <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
* value - Ҫ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ֵ: SUCCESS - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
* ERROR - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: GT9XX <EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
* ˵ <EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>оƬ<EFBFBD>ļĴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
******************************************************************************************/
uint8_t GT9XX_ReadReg (uint16_t addr, uint8_t cnt, uint8_t *value)
2025-06-27 00:32:57 +08:00
{
uint8_t status = 0;
uint8_t i = 0;
2025-06-27 00:32:57 +08:00
status = ERROR;
2025-07-05 19:47:28 +08:00
Touch_IIC_Start(); // <20><><EFBFBD><EFBFBD>IICͨ<43><CDA8>
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
if( GT9XX_WriteHandle(addr) == SUCCESS) // д<><D0B4>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ļĴ<C4BC><C4B4><EFBFBD>
2025-06-27 00:32:57 +08:00
{
2025-07-05 19:47:28 +08:00
Touch_IIC_Start(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IICͨѶ
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
if (Touch_IIC_WriteByte(GT9XX_IIC_RADDR) == ACK_OK) // <20><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>
{
2025-07-05 19:47:28 +08:00
for(i = 0 ; i < cnt; i++) // <20><><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
{
if (i == (cnt - 1))
{
2025-07-05 19:47:28 +08:00
value[i] = Touch_IIC_ReadByte(0); // <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>Ӧ<EFBFBD><D3A6><EFBFBD>ź<EFBFBD>
2025-06-27 00:32:57 +08:00
}
else
{
2025-07-05 19:47:28 +08:00
value[i] = Touch_IIC_ReadByte(1); // <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ź<EFBFBD>
2025-06-27 00:32:57 +08:00
}
}
2025-07-05 19:47:28 +08:00
Touch_IIC_Stop(); // ֹͣIICͨ<43><CDA8>
2025-06-27 00:32:57 +08:00
status = SUCCESS;
}
}
Touch_IIC_Stop();
return (status);
2025-06-27 00:32:57 +08:00
}
/*****************************************************************************************
2025-07-05 19:47:28 +08:00
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: GT9XX_SendCfg
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ֵ:<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>GT9147<EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD>
* ˵ <EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>GT9147<EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>úã<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>
* <EFBFBD>û<EFBFBD><EFBFBD>޸IJ<EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȻƵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<EFBFBD><EFBFBD>Flashд<EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
******************************************************************************************/
void GT9XX_SendCfg(void)
{
uint8_t GT9XX_Check[2];
uint8_t i=0;
2025-07-05 19:47:28 +08:00
GT9XX_Check[1] = 1; // <20><><EFBFBD>ø<EFBFBD><C3B8>±<EFBFBD>־
2025-06-27 00:32:57 +08:00
for(i=0;i<sizeof(GT9XX_CFG_DATA);i++)
{
2025-07-05 19:47:28 +08:00
GT9XX_Check[0] += GT9XX_CFG_DATA[i]; //<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
}
GT9XX_Check [0] = (~GT9XX_Check[0])+1;
GT9XX_WriteReg(0X8047,sizeof(GT9XX_CFG_DATA),(uint8_t*)GT9XX_CFG_DATA); // <09><><EFBFBD>ͼĴ<CDBC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-07-05 19:47:28 +08:00
GT9XX_WriteReg(0X80FF,2,GT9XX_Check); // д<><D0B4>У<EFBFBD><D0A3><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
2025-06-27 00:32:57 +08:00
/*****************************************************************************************
2025-07-05 19:47:28 +08:00
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: GT9XX_ReadCfg
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ֵ:<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ȡGT9147<EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD>
* ˵ <EFBFBD><EFBFBD>:ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
******************************************************************************************/
void GT9XX_ReadCfg(void)
{
uint8_t GT9XX_Cfg[184]; // <20><><EFBFBD><EFBFBD><E9B3A4>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD>оƬ<D0BE>ļĴ<C4BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint16_t i = 0;
2025-06-27 00:32:57 +08:00
printf("-----------------------------------------\r\n");
2025-07-05 19:47:28 +08:00
printf("<EFBFBD><EFBFBD>ȡоƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n");
2025-07-05 19:47:28 +08:00
GT9XX_ReadReg (GT9XX_CFG_ADDR,184,GT9XX_Cfg); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
2025-06-27 00:32:57 +08:00
for(i=0;i<184;i++)
{
if( (i%10 == 0) && (i>0) )
2025-06-27 00:32:57 +08:00
{
printf("\r\n");
}
printf("0X%.2x,",GT9XX_Cfg[i]);
}
printf("\r\n-----------------------------------------\r\n");
2025-06-27 00:32:57 +08:00
}
/*****************************************************************************************
2025-07-05 19:47:28 +08:00
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: Touch_Init
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ֵ: SUCCESS - <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
* ERROR - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-07-05 19:47:28 +08:00
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>IC<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ˵ <EFBFBD><EFBFBD>: <EFBFBD>ڳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Եĵ<EFBFBD><EFBFBD>øú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD> touchInfo <EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
******************************************************************************************/
uint8_t Touch_Init(void)
2025-06-27 00:32:57 +08:00
{
uint8_t GT9XX_Info[11]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IC<49><43>Ϣ
uint8_t cfgVersion = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð汾
2025-07-05 19:47:28 +08:00
Touch_IIC_GPIO_Config(); // <20><>ʼ<EFBFBD><CABC>IIC<49><43><EFBFBD><EFBFBD>
GT9XX_Reset(); // GT9147 <20><>λ
// //<2F><>ȡGT9147<34><37><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>
2025-07-05 19:47:28 +08:00
// // ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ԭ<EFBFBD><D4AD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6>ؼ<EFBFBD><D8BC>IJ<EFBFBD><C4B2><EFBFBD>
// GT9XX_ReadCfg();
2025-07-05 19:47:28 +08:00
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>GT9147<34><37><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><E7B1A3><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// //<2F>û<EFBFBD><C3BB>޸IJ<DEB8><C4B2><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>ȻƵ<C8BB><C6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><E1BDAB><EFBFBD><EFBFBD>оƬ<D0BE><C6AC>Flashд<68><D0B4>
// GT9XX_SendCfg();
2025-07-05 19:47:28 +08:00
GT9XX_ReadReg (GT9XX_ID_ADDR,11,GT9XX_Info); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IC<49><43>Ϣ
GT9XX_ReadReg (GT9XX_CFG_ADDR,1,&cfgVersion); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð汾
2025-07-05 19:47:28 +08:00
if( GT9XX_Info[0] == '9' ) // <09>жϵ<D0B6>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD><D6B7>Ƿ<EFBFBD>Ϊ <20><>9<EFBFBD><39>
2025-06-27 00:32:57 +08:00
{
2025-07-05 19:47:28 +08:00
// printf("Touch ID<49><44> GT%.4s \r\n",GT9XX_Info); // <20><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>оƬ<D0BE><C6AC>ID
// printf("<22>̼<EFBFBD><CCBC><EFBFBD><E6B1BE> 0X%.4x\r\n",(GT9XX_Info[5]<<8) + GT9XX_Info[4]); // оƬ<D0BE>̼<EFBFBD><CCBC>
// printf("<22><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ʣ<EFBFBD>%d * %d\r\n",(GT9XX_Info[7]<<8) + GT9XX_Info[6],(GT9XX_Info[9]<<8) +GT9XX_Info[8]); // <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
// printf("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð汾<C3B0><E6B1BE> 0X%.2x \r\n",cfgVersion); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð汾
2025-06-27 00:32:57 +08:00
return SUCCESS;
}
else
{
2025-07-05 19:47:28 +08:00
// printf("δ<><CEB4><EFBFBD><EFBFBD><E2B5BD><EFBFBD><EFBFBD>IC\r\n"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><E2B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
return ERROR;
}
}
/*****************************************************************************************
2025-07-05 19:47:28 +08:00
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: Touch_Scan
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ֵ: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD>
* ˵ <EFBFBD><EFBFBD>: <EFBFBD>ڳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Եĵ<EFBFBD><EFBFBD>øú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD> touchInfo <EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
******************************************************************************************/
void Touch_Scan(void)
{
uint8_t touchData[2 + 8 * TOUCH_MAX ]; //<2F><><EFBFBD>ڴ洢<DAB4><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8_t i = 0;
2025-07-05 19:47:28 +08:00
GT9XX_ReadReg (GT9XX_READ_ADDR,2 + 8 * TOUCH_MAX ,touchData); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GT9XX_WriteData (GT9XX_READ_ADDR,0); // <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<D0BE>ļĴ<C4BC><C4B4><EFBFBD><EFBFBD><EFBFBD>־λ
touchInfo.num = touchData[0] & 0x0f; // ȡ<><C8A1>ǰ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޴<EFBFBD><DEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>
2025-07-05 19:47:28 +08:00
if ( (touchInfo.num >= 1) && (touchInfo.num <=5) ) // <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1-5 ֮<><D6AE>ʱ
2025-06-27 00:32:57 +08:00
{
2025-07-05 19:47:28 +08:00
for(i=0;i<touchInfo.num;i++) // ȡ<><C8A1>Ӧ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
{
2025-07-05 19:47:28 +08:00
// touchInfo.y[i] = 272-((touchData[5+8*i]<<8) | touchData[4+8*i]); // <20><>ȡY<C8A1><59><EFBFBD><EFBFBD>
// touchInfo.x[i] = 480-((touchData[3+8*i]<<8) | touchData[2+8*i]); // <09><>ȡX<C8A1><58><EFBFBD><EFBFBD>
2025-07-05 19:47:28 +08:00
touchInfo.y[i] = ((touchData[5+8*i]<<8) | touchData[4+8*i]); // <20><>ȡY<C8A1><59><EFBFBD><EFBFBD>
touchInfo.x[i] = ((touchData[3+8*i]<<8) | touchData[2+8*i]); // <09><>ȡX<C8A1><58><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
}
2025-07-05 19:47:28 +08:00
touchInfo.flag = 1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ<D6BE><CEBB>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
}
else
2025-06-27 00:32:57 +08:00
{
2025-07-05 19:47:28 +08:00
for(i=0;i<TOUCH_MAX;i++) // ȡ<><C8A1>Ӧ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
{
2025-07-05 19:47:28 +08:00
touchInfo.y[i] =0; // <20><>ȡY<C8A1><59><EFBFBD><EFBFBD>
touchInfo.x[i] =0; // <09><>ȡX<C8A1><58><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
}
2025-07-05 19:47:28 +08:00
touchInfo.flag = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ<D6BE><CEBB>0<EFBFBD><30><EFBFBD>޴<EFBFBD><DEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
}
}
TouchStructure *Touch_GetState(void)
{
return &touchInfo;
2025-06-27 00:32:57 +08:00
}
/******************************************************************************************/