一)增加驅動代碼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;
}
三)硬件連接如圖所示: