一)增加驱动代码gt9xxx.c和ctiic.c到工程中的BSP目录下:
二)更改触摸文件STM32TouchController.cpp
1)在STM32TouchController.cpp文件中增加:
#include “gt9xxx.h”
2)增加gt9xxx_init();
void STM32TouchController::init()
{
gt9xxx_init();
}
3)触摸屏函数重写
bool STM32TouchController::sampleTouch(int32_t& x, int32_t& y)
{uint8_t buf[4];uint8_t mode;uint8_t i = 0;
// if(GT9XXX_INT==0)//说明有手指按下了,会一直拉低
// {
// gt9xxx_rd_reg(GT9XXX_GSTID_REG,buf,1);
//
// if(buf[0]&0x0f)//说明真的有手指按下了
// {
// gt9xxx_rd_reg(GT9XXX_TP1_REG,buf,4);//读取第一点的坐标值
// y = ((u16)(buf[0]&0x0f)<<8)+buf[1];
// x = ((u16)(buf[2]&0x0f)<<8)+buf[3];
// return true;
// }
// }gt9xxx_rd_reg(GT9XXX_GSTID_REG, &mode, 1); /* 读取触摸点的状态 */if ((mode & 0X80) && ((mode & 0XF) <= 5)){i = 0;gt9xxx_wr_reg(GT9XXX_GSTID_REG, &i, 1); /* 清标志 */}if ((mode & 0X80) && ((mode & 0XF) <= 5)){gt9xxx_rd_reg(GT9XXX_TP1_REG, buf, 4); x = ((u16)(buf[1]&0x0f)<<8)+buf[0];y = ((u16)(buf[3]&0x0f)<<8)+buf[2];return true;}return false;
}
三)硬件连接如图所示: