OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...

查看: 2404|回复: 3

关于st的lsm9ds1这个传感器

[复制链接]

  离线 

1

主题

2

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2016-4-15
在线时间
4 小时
发表于 2016-5-18 09:44:52 | 显示全部楼层 |阅读模式
正点原子公众号
  最近使用了stm的lsm9ds1这个九轴触感器,各个数据都读出,现在给大家分享下磁力计这部分代码,顺便问一下,磁力计这样配置对不对,file:///C:\Users\dell\AppData\Roaming\Tencent\Users\1531886062\QQ\WinTemp\RichOle\6_JBF]PVFTOIK~0I4ADD9I5.pngCTRL_REG1_M (20h),这个此存器该怎么配置?void config_mag_default(){
  unsigned char buffer[2];
  int wait;


  //CTRL_REG1_M  
  buffer[0] = 0x20;                                                              //10hz
  buffer[1] = 0x30;                               // 0b00110000  datasheet
  i2cWrite(SAD_M_0, buffer, sizeof(buffer), I2C_STD);
  for(wait = 0; wait < 1000000; wait++){;}       // Wait before doing another operation




  //CTRL_REG2_M
  buffer[0] = 0x21;                                                               //  
  buffer[1] = 0x00;                               // table 112 113 114 ----4g
  i2cWrite(SAD_M_0, buffer, sizeof(buffer), I2C_STD);
  for(wait = 0; wait < 1000000; wait++){;}       // Wait before doing another operation




  //CTRL_REG3_M
  buffer[0] = 0x22;                                                              // 0b00000000        -----Continuous-conversion mode
  buffer[1] = 0x00;                               // table 115 116 117
  i2cWrite(SAD_M_0, buffer, sizeof(buffer), I2C_STD);
  for(wait = 0; wait < 1000000; wait++){;}       // Wait before doing another operation


  //CTRL_REG4_M
  buffer[0] = 0x23;                                                               // 0b00001000
  buffer[1] = 0x04;                                // table 118 119 120
  i2cWrite(SAD_M_0, buffer, sizeof(buffer), I2C_STD);
  for(wait = 0; wait < 1000000; wait++){;}        // Wait before doing another operation


          
}

void get_sensor_data_M(char address, int data, int *output){       // output[0] = x | output[1] = y | output[2] = z
  unsigned char buffer[6] = {0};                                     // each value has 2 byter (3 values x 2 byter = 6 bytes)
  unsigned char buffer1[1] = {0};
  address =   SAD_M_0;
  data = 0x28;
  buffer1[0] = data;


  i2cWrite(SAD_M_0,buffer1, 1, I2C_STD);                                                                   // sequentially reads 6 registers
  i2cRead(SAD_M_0, buffer, 6, I2C_STD);
      
  output[0] = (buffer[1] << 8) | buffer[0];           // merge the 2 bytes in a single value, e.g. (OUT_X_H_G << 8) | OUT_X_L_G
  output[1] = (buffer[3] << 8) | buffer[2];           // xxx_x_H_x contains the most significant bytes and xxx_x_L_x contains the least significant bytes
  output[2] = (buffer[5] << 8) | buffer[4];           
}





回复

使用道具 举报

  离线 

2

主题

11

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2018-2-6
在线时间
5 小时
发表于 2018-2-12 13:47:39 | 显示全部楼层
楼主弄好了吗 我新买了个板子 也有这个 还没弄呢
回复 支持 反对

使用道具 举报

  离线 

11

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2017-7-12
在线时间
46 小时
发表于 2018-4-17 15:13:57 | 显示全部楼层
yxzy150 发表于 2018-2-12 13:47
楼主弄好了吗 我新买了个板子 也有这个 还没弄呢

你弄出来了吗   我也在弄这个  可不可以留个联系方式交流一下
回复 支持 反对

使用道具 举报

  离线 

11

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2017-7-12
在线时间
46 小时
发表于 2018-4-17 15:14:14 | 显示全部楼层
楼主可以留个联系方式吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




关闭

"原子哥”推荐上一条 /1 下一条

QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-7-18 01:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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