FT6236驱动触摸屏,读到的坐标为什么都是FF 00 00 00啊?

[mw_shl_code=applescript,true]#define FT6236_TPX_TBL1 0X03 //第一个触摸点数据地址
const u16 FT6236_TPX_TBL[2] = {FT6236_TPX_TBL1,FT6236_TPX_TBL2};
TouchPointRefTypeDef TPR_Structure;
void FT6236_Scan(void)
{
u8 buf[4];
u8 sta = 0;
FT6236_RD_Reg(FT_REG_NUM_FINGER, &sta, 1);//读取触摸点的状态
if(sta & 0x0F)//判断是否有触摸点按下,
{
TPR_Structure.TouchSta = ~(0xFF << (sta & 0x0F));//将点的个数转换为触摸点按下有效标志
TPR_Structure.TouchSta |= TP_PRES_DOWN; //触摸按下标记
if(TPR_Structure.TouchSta ) //读取触摸到坐标
{
FT6236_RD_Reg(FT6236_TPX_TBL[0], buf, 4);
TPR_Structure.x1 = ((u16)(buf[0] & 0x0F) << 8) + buf[1];
TPR_Structure.y1 = ((u16)(buf[2] & 0x0F) << 8) + buf[3];
if((buf[0] & 0xC0) != 0x80)
{
TPR_Structure.x1 = TPR_Structure.y1 = 0; //必须是contact事件,才认为有效
}
}
}
else
{
if(TPR_Structure.TouchSta & TP_PRES_DOWN)//之前是被按下的
TPR_Structure.TouchSta &= ~TP_PRES_DOWN;//触摸松开标记
else
{
TPR_Structure.x1 = 0;
TPR_Structure.y1 = 0;
TPR_Structure.TouchSta &= 0xe0; //清除触摸点有效标记
}
}
}[/mw_shl_code]
一周热门 更多>