关于L3G4200D用模拟SPI如何读取ID呀?
如题,在网上只看到模拟IIC读取ID的例程,它的数据接收为只有SDA,但SPI我是用四线的,不知道如何读取ID。请各位给予指点啊~~ 回复【楼主位】arielw-----------------------------------------------------------------------
/*******************************************************************/
/*
/*L3G4200D读寄存器
/*
/*******************************************************************/
uchar L3G_R(uchar add)
{
uchar k,dat=0xFF;
add |=0x80; //写寄存器;地址不自动增加;
CS=0;
for(k=0;k<8;k++) //将寄存器的地址写入L3G4200D中
{
SCK=0;
if((add << k) & 0x80)
{
SDI = 1;
}
else
{
SDI= 0;
}
SCK=1;
}
SDI=1;
for(k=0;k<8;k++)//将目标寄存器的数据读出来
{
SCK=0;
dat=dat<<1;
if(SDO==1)dat++;
SCK=1;
}
CS =1;
SDI=1;
SDI=1;
return(dat);
}
其中add是ID的寄存器地址;返回值dat是那个reg的值,也就是你想知道的设备ID
页:
[1]