搜索
bottom↓
回复: 6

L3G4200D spi问题

[复制链接]

出0入0汤圆

发表于 2011-6-22 23:56:57 | 显示全部楼层 |阅读模式
我在使用SPI读写L3G4200D常出现以下两个问题,一是无法读出数据,二是读出的数据一直为一个不变的值。请教高手,有没有知道原因的,我已经整了好久。谢谢了.....我的初始化程序如下,现在很怀疑自己的初始化程序有问题:请高手看下,给点意见!
    SPIWrite(0x60);
    SPIWrite (0x4F);
    SPIWrite (0x00);
    SPIWrite (0x00);
    SPIWrite (0xD1);
    SPIWrite (0x00);
读L3G4200D如下
    do
    {
    SPIWrite(STATUS_REG | 0x80);
    Status = SPIRead();
    }
    while(Status & 0x08);
    if(Status & 0x80)
    return;
   
    SPIWrite(OUT_X_L | 0x80);
    Angular_Speed_XL = SPIRead();
    SPIWrite(OUT_X_H|0x80);
    Angular_Speed_XH=SPIRead();

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2011-6-23 09:19:29 | 显示全部楼层
http://ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4728727&bbs_page_no=1&bbs_id=1025

1L有代码,三线SPI模式

出0入0汤圆

 楼主| 发表于 2011-6-23 13:45:32 | 显示全部楼层
回复【1楼】Clinging 哆拉C梦
-----------------------------------------------------------------------

我试了一下,结果值一直是在一个范围内变化,当我旋转陀螺仪时,也还是在那个范围内变化,这是为什么啊?我把初始化程序屏蔽了,结果还是那样。你知道可能是什么原因吗?

出0入0汤圆

发表于 2011-6-29 13:35:57 | 显示全部楼层
楼主你的问题解决了吗我碰到和你一样的问题 请指教

出0入0汤圆

发表于 2011-7-6 10:32:55 | 显示全部楼层
L3G4200D 原装现货,有需要请联系QQ:1612150952
LSM303DLH也有!

出0入0汤圆

发表于 2012-1-7 23:31:38 | 显示全部楼层
回复【3楼】veryjc
-----------------------------------------------------------------------

/*******************************************************************/
/*
/*  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;       
}

出0入0汤圆

发表于 2018-4-24 15:46:27 | 显示全部楼层
谢谢分享!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 19:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表