• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > 使用SPI总线读写LSM9DS0总是有问题,请大家来看看代码

使用SPI总线读写LSM9DS0总是有问题,请大家来看看代码

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了lsm9ds0,spi总线,spi总线协议,spi总线工作原理,spi总线时序等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 使用SPI总线读写LSM9DS0 总是有问题,请大家来看看代码
描述:

本帖最后由 wangjing20081996 于 2015-03-09 14:50:45 编辑

LSM9DS0 传感器 SPI


 用SPI总线跟LSM9DS0传感器建立通信,MCU是LPC 1114,读取时不能得到有效值,需要多次读才可以,写入时要需要写入几次
代码如下:
uartSendByte (0x55);  //printf flag
 // read ID
 {
 LPC_GPIO2->DATA=(LPC_GPIO2->DATA&(~0x100)); //cs_XM is low
 myDelay(100);
 SPI0_SendData(0x8f);
 x= SPI0_SendData(0x00);
 myDelay(10);
 uartSendByte (x);
 LPC_GPIO2->DATA|=0x100;  //cs_XM is high
  }
 uartSendByte (0xaa);   //printf flag
//set CTRL_REG1_XM=ox57
 for(i=0;i<2;i++) //If set CTRL_REG1_XM once,the value not change
 {
// LPC_GPIO2->DATA=(LPC_GPIO2->DATA&(~0x100));
    myDelay(10);
 SPI0_SendData((CTRL_REG1_XM));
 SPI0_SendData((0x57));
// LPC_GPIO2->DATA|=0x100;
  }
  LPC_GPIO2->DATA|=0x100;
//read the CTRL_REG1_XM
 for(i=0;i<3;i++) //If read CTRL_REG1_XM once,the value is incorrect.    when I change the time to 2, the output is :55 00 AA 00 FF FF FF 5A 04 CC CC......
 {
 LPC_GPIO2->DATA=(LPC_GPIO2->DATA&(~0x100));
 SPI0_SendData((0x80|CTRL_REG1_XM));
 x=SPI0_SendData(0);
 uartSendByte (x);
 myDelay( 1000);
 LPC_GPIO2->DATA|=0x100;
 }
//set CTRL_REG3_XM=0x04
 LPC_GPIO2->DATA=(LPC_GPIO2->DATA&(~0x100));
 for(i=0;i<2;i++) //If set CTRL_REG3_XM once,the value not change
 {   
 myDelay(10);
 SPI0_SendData(CTRL_REG3_XM);
 SPI0_SendData(0x04);
  }
 LPC_GPIO2->DATA|=0x100;
//read CTRL_REG3_XM
 for(i=0;i<2;i++) //If read CTRL_REG3_XM once,the value is incorrect.
 {
 LPC_GPIO2->DATA=(LPC_GPIO2->DATA&(~0x100));
 SPI0_SendData((0x80|CTRL_REG3_XM));
 x=SPI0_SendData(0);
 uartSendByte (x);
 myDelay( 1000);
 LPC_GPIO2->DATA|=0x100;
 }
 uartSendByte (0x5a); //print flag
 while(1)
 {
//It only read the OUT_X_L_M ,but the value was same when the sensor was moved
   {
   LPC_GPIO2->DATA=(LPC_GPIO2->DATA&(~0x100));
   SPI0_SendData(0x80|OUT_X_L_M);
   x=SPI0_SendData(0);
   uartSendByte(x);
   myDelay(1000);
   LPC_GPIO2->DATA|=0x100;
   }
 }
结果如下:
55 00 AA 00 FF 57 FF FF 5A 04 CC CC CC.....
这儿,57跟04都是读到了正确值,这儿是读了3次
如果将CTRL_REG1_XM  读2次,输出如下:
55 00 AA 00 FF FF FF 5A 04 CC CC......
花了好久来解决这个问题,请大家分析分析


解决方案1:

spi 时钟看看是不是太高了,用示波器看下信号线波形

解决方案2:

可能是你的时间测试有问题。 你可以看看波形和datasheet给的值是否符合。 


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 使用SPI总线读写LSM9DS0总是有问题,请大家来看看代码

相关文章

  • 2017-06-05 如果将一台电脑上对外模拟成U盘。
  • 2017-06-05 zigbee与51单片机怎么连接?
  • 2017-06-05 C8051开发问题,求帮助
  • 2017-06-05 开发一套国产PLC在国内有市场吗?
  • 2017-06-05 设计了一块板子用了AMS1117电源芯片输入5V,输出电压只有00几V,求大神帮忙解决
  • 2017-06-05 用stm32模仿Joystick自制usb接口的HID六轴24按键游戏摇杆,貌似快成功了……
  • 2017-06-05 需要用并口模拟脉冲信号来驱动步进电机
  • 2017-06-05 u-boot编译出错
  • 2017-06-05 求助,帮忙做个算法~!!!!!!!是为电机控制卡做的。
  • 2017-06-05 DDR3local_init_done一直拉低,无法初始化

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 求两个reg文件,在武安河wdm设备驱动程序一书配套光盘中
    • 空调遥控晶振改变后该如何改程序,求指导
    • [求助]OpenwrtMT7620A第二个串口打开
    • Hi3518通过CTRL+C进入UBOOT,配置了环境变量,但是pingHi3518和主机都ping不通
    • 有关WDM驱动程序造成系统不能启动的原因?
    • mini2440烧写WinCE60镜像文件时USB连接断开好像是连驱动都给我卸了
    • 请帮我看一下这个程序,是哪里出错了?新手什么都不懂
    • 刚进一家公司,对给的任务不是很明白,求帮助
    • 嵌入式开发,S3C2410的核心板,开发板请进
    • 请教PC/SC问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有