bool FT5X06_ReadOnePiont(uint16_t *px, uint16_t *py)
{
uint8_t buf[16] = {0}; /* 将其都初始化为 0 */
uint16_t x, y;
uint8_t res;
//da yin device mode
res = FT5X06_ReadReg(FT5X06.i2c_addr, 0x00, &buf[11], 4);
if(res != 0)
{
//uprintf("1.failed\r\n");
return false;
}
uprintf("device mode: %d\r\n",(buf[11]));
uprintf("gest id: %x\r\n",(buf[12]));
uprintf("TD_STATUS: %x\r\n",(buf[13]));
uprintf("EVENT flag: %x\r\n",(buf[14]&0xf0));
res = FT5X06_ReadReg(FT5X06.i2c_addr, 0x02, buf, 1);
if(res != 0)
{
//uprintf("1.failed\r\n");
return false;
}
/* 判断是否按下,没有按下,直接退出 */
if ((buf[13] ) == 0)
{
uprintf("no input\n");
return false;
}
//读坐标寄存器
res = FT5X06_ReadReg(FT5X06.i2c_addr, 0x03, &buf[1], 6);
if(res != 0)
{
uprintf("2.failed\r\n");
return false;
}
FT5X06.X0 = (((uint16_t)buf[1] & 0x000f)<<8) + (uint16_t)buf[2];
FT5X06.Y0 = (((uint16_t)buf[3] & 0x000f)<<8) + (uint16_t)buf[4];
FT5X06.P0 = buf[6];
uprintf("X0 : %d\r\n",FT5X06.X0);
uprintf("Y0 : %d\r\n",FT5X06.Y0);
x = FT5X06.X0;
y = FT5X06.Y0;
uprintf("x : %d\r\n",x);
uprintf("y : %d\r\n",y);
*px = x;
*py = y;
return true;
}
// FT5X06_ReadReg()可用HAL_I2C_Mem_Read()函数实现