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"
|
2025-10-18 13:58:40 +08:00
|
|
|
|
#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>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
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
|
|
|
|
//
|
2025-10-18 13:58:40 +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-10-18 13:58:40 +08:00
|
|
|
|
|
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-10-18 13:58:40 +08:00
|
|
|
|
|
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><>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
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-10-18 13:58:40 +08:00
|
|
|
|
|
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-10-18 13:58:40 +08:00
|
|
|
|
|
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><>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
// 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><>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
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-10-18 13:58:40 +08:00
|
|
|
|
|
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-10-18 13:58:40 +08:00
|
|
|
|
|
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>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
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
|
|
|
|
******************************************************************************************/
|
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
uint8_t GT9XX_WriteHandle (uint16_t addr)
|
2025-06-27 00:32:57 +08:00
|
|
|
|
{
|
2025-10-18 13:58:40 +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-10-18 13:58:40 +08:00
|
|
|
|
|
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
|
|
|
|
{
|
2025-10-18 13:58:40 +08:00
|
|
|
|
if( Touch_IIC_WriteByte((uint8_t)(addr >> 8)) == ACK_OK ) //д<><D0B4>16λ<36><CEBB>ַ
|
2025-06-27 00:32:57 +08:00
|
|
|
|
{
|
2025-10-18 13:58:40 +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-10-18 13:58:40 +08:00
|
|
|
|
}
|
2025-06-27 00:32:57 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2025-07-05 19:47:28 +08:00
|
|
|
|
status = SUCCESS; // <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
2025-10-18 13:58:40 +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_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
|
|
|
|
******************************************************************************************/
|
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
uint8_t GT9XX_WriteData (uint16_t addr,uint8_t value)
|
2025-06-27 00:32:57 +08:00
|
|
|
|
{
|
2025-10-18 13:58:40 +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
|
|
|
|
{
|
2025-10-18 13:58:40 +08:00
|
|
|
|
status = ERROR; // д<><D0B4>ʧ<EFBFBD><CAA7>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
}
|
2025-10-18 13:58:40 +08:00
|
|
|
|
}
|
2025-07-05 19:47:28 +08:00
|
|
|
|
Touch_IIC_Stop(); // ֹͣͨѶ
|
2025-10-18 13:58:40 +08:00
|
|
|
|
|
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
|
|
|
|
******************************************************************************************/
|
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
uint8_t GT9XX_WriteReg (uint16_t addr, uint8_t cnt, uint8_t *value)
|
2025-06-27 00:32:57 +08:00
|
|
|
|
{
|
2025-10-18 13:58:40 +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-10-18 13:58:40 +08:00
|
|
|
|
}
|
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
|
|
|
|
}
|
|
|
|
|
|
2025-10-18 13:58:40 +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
|
|
|
|
******************************************************************************************/
|
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
uint8_t GT9XX_ReadReg (uint16_t addr, uint8_t cnt, uint8_t *value)
|
2025-06-27 00:32:57 +08:00
|
|
|
|
{
|
2025-10-18 13:58:40 +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-10-18 13:58:40 +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
|
|
|
|
{
|
|
|
|
|
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-10-18 13:58:40 +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();
|
2025-10-18 13:58:40 +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_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)
|
|
|
|
|
{
|
2025-10-18 13:58:40 +08:00
|
|
|
|
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-10-18 13:58:40 +08:00
|
|
|
|
|
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
|
|
|
|
}
|
2025-10-18 13:58:40 +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-10-18 13:58:40 +08:00
|
|
|
|
}
|
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>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
* ˵ <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)
|
|
|
|
|
{
|
2025-10-18 13:58:40 +08:00
|
|
|
|
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
|
|
|
|
|
2025-10-18 13:58:40 +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-10-18 13:58:40 +08:00
|
|
|
|
|
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++)
|
2025-10-18 13:58:40 +08:00
|
|
|
|
{
|
|
|
|
|
if( (i%10 == 0) && (i>0) )
|
2025-06-27 00:32:57 +08:00
|
|
|
|
{
|
|
|
|
|
printf("\r\n");
|
|
|
|
|
}
|
|
|
|
|
printf("0X%.2x,",GT9XX_Cfg[i]);
|
|
|
|
|
}
|
2025-10-18 13:58:40 +08:00
|
|
|
|
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>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
* 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
|
|
|
|
******************************************************************************************/
|
|
|
|
|
|
2025-10-18 13:58:40 +08:00
|
|
|
|
uint8_t Touch_Init(void)
|
2025-06-27 00:32:57 +08:00
|
|
|
|
{
|
2025-10-18 13:58:40 +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><>λ
|
2025-10-18 13:58:40 +08:00
|
|
|
|
|
|
|
|
|
// //<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>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
// 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>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
// //<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-10-18 13:58:40 +08:00
|
|
|
|
|
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>汾
|
2025-10-18 13:58:40 +08:00
|
|
|
|
// 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)
|
|
|
|
|
{
|
2025-10-18 13:58:40 +08:00
|
|
|
|
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-10-18 13:58:40 +08:00
|
|
|
|
|
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>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
// 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>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
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
|
|
|
|
}
|
2025-10-18 13:58:40 +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>
|
2025-10-18 13:58:40 +08:00
|
|
|
|
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)
|
|
|
|
|
{
|
2025-10-18 13:58:40 +08:00
|
|
|
|
return &touchInfo;
|
2025-06-27 00:32:57 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/******************************************************************************************/
|
|
|
|
|
|
|
|
|
|
|