初级会员

- 积分
- 51
- 金钱
- 51
- 注册时间
- 2016-10-5
- 在线时间
- 10 小时
|

楼主 |
发表于 2016-12-30 10:00:11
|
显示全部楼层
本帖最后由 lijunhui 于 2016-12-30 10:04 编辑
void GT9147_RD_Reg(u16 reg,u8 *buf,u8 len)
{
u8 i;
CT_IIC_Start();
CT_IIC_Send_Byte(GT_CMD_WR); //发送写命令
CT_IIC_Wait_Ack();
CT_IIC_Send_Byte(reg>>8); //发送高8位地址
CT_IIC_Wait_Ack();
CT_IIC_Send_Byte(reg&0XFF); //发送低8位地址
CT_IIC_Wait_Ack();
CT_IIC_Start();
CT_IIC_Send_Byte(GT_CMD_RD); //发送读命令
CT_IIC_Wait_Ack();
for(i=0;i<len;i++)
{
buf[ i ]=CT_IIC_Read_Byte(i==(len-1)?0:1); //发数据
}
CT_IIC_Stop();//产生一个停止条件
}
第一次发的代码错了 这才是正确
u8 GT9147_Scan(u8 mode)
{
u8 buf[4];
u8 i=0;
u8 res=0;
u8 temp;
u8 tempsta;
static u8 t=0;//控制查询间隔,从而降低CPU占用率
t++;
if((t%10)==0||t<10)//空闲时,每进入10次CTP_Scan函数才检测1次,从而节省CPU使用率
{
GT9147_RD_Reg(GT_GSTID_REG,&mode,1); //读取触摸点的状态
if(mode&0X80&&((mode&0XF)<6)) //mode最高位为1 且低4位的值小于6 有数据
{
temp=0;
GT9147_WR_Reg(GT_GSTID_REG,&temp,1);//清标志
}
这是调用GT9147_RD_Reg的函数,进入GT9147_RD_Reg函数后u8 *buf怎么变成了 buf [ i ] ,读到这里就看不懂 了,跪求大神。
|
|