veryjc 发表于 2011-7-4 21:40:56

有用过L3G4200D 的朋友请进

我想问下有用过L3G4200D 的朋友在焊接的时候 使用多少度的风枪来焊的 我不知道我的是不是焊坏了 数据老是不变化

zjihtt 发表于 2011-7-5 21:19:25

能读ID不?先确认接口有没有问题

gale 发表于 2011-7-5 23:52:08

我使用280度,没坏。你能读取到有效数据,应该问题就不大,先读下ID吧,然后设置一下,激活它。

arielw 发表于 2011-11-24 10:59:48

回复【2楼】gale
-----------------------------------------------------------------------

请问模拟SPI如何读取ID?

MrLCL 发表于 2012-1-7 23:32:44

回复【3楼】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);       
}
/*******************************************************************/
/*
/*L3G4200D写寄存器
/*
/*******************************************************************/
void L3G_W(uchar add,uchar dat)
{
        uchar k;
        add &=0x3F;       //写寄存器;地址不自动增加;
        CS   =0;
          for(k=0;k<8;k++)   //将寄存器的地址写入L3G4200D中
                   {
                          SCK=0;
                          if((add << k) & 0x80)
                                  {
                                        SDI = 1;
                                  }
                           else
                                  {
                                        SDI= 0;
                                  }                                                                                                                    
                           SCK=1;
                   }

          for(k=0;k<8;k++)   //将配置数据写入L3G4200D寄存器中
                   {
                          SCK=0;
                          if((dat << k) & 0x80)
                                  {
                                        SDI = 1;
                                  }
                           else
                                  {
                                        SDI= 0;
                                  }                                                                                                                    
                           SCK=1;
                   }
                   SDI=1;
                  
      CS =1;
          SDI=1;
          SDO=1;       
}

好几个人好像都不知道读ID。这是我用过的程序,
希望高手帮小弟们解决这个芯片的用法啊
页: [1]
查看完整版本: 有用过L3G4200D 的朋友请进