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

2019-07-20 03:04发布

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]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。