13200|23

9790

帖子

24

TA的资源

版主

楼主
 

stm32l4r5测试LSM6DSL的STMems_Standard_C_drivers [复制链接]

 
 前两天测试LSM6DSL传感器时选择en.x-cube-mems-xt1_firmware例程
因为看中里边的各种演示,花了很多时间被层层“套路”最后只完成读取WHO AM I的功能
在测试其它功能时DRDY中断不触发,直接读取数据也不正常
没办法了使用STMems_Standard_C_drivers驱动验证一下评估板是不是存在硬件问题
想不到这个库非常好用,简单改几下代码就能应用到新项目上
读起来也非常直观,不会被“套路”
结果证明评估板硬件正常
给这个库点11个赞,以后再不会因为移植传感器驱动头疼了
因为STMems_Standard_C_drivers里的演示功能简单(配置好后反复读状态寄存器和数据寄存器)
排除硬件问题接下来就可以测试en.x-cube-mems-xt1_firmware里的功能了


附上我的STM32L4R5的LSM6DSL工程
stm32l4r5.rar (13.52 MB, 下载次数: 151)


最新回复

HAO  详情 回复 发表于 2022-11-1 15:21
点赞 关注(1)
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复
举报

9

帖子

1

TA的资源

一粒金砂(中级)

沙发
 
老哥,利用cubeMX驱动  LSM6DSL的具体过程是什么?能讲解一下吗非常感谢

点评

cubemx只要把对应的SPI或者I2C驱动调通,把这个驱动包的文件引入,修改read_data_simple.c文件中的platform_write和platform_read中的SPI或I2C驱动就可以了  详情 回复 发表于 2018-10-30 18:52
 
 
 

回复

9790

帖子

24

TA的资源

版主

板凳
 
zfw152666 发表于 2018-10-30 15:39
老哥,利用cubeMX驱动  LSM6DSL的具体过程是什么?能讲解一下吗非常感谢

cubemx只要把对应的SPI或者I2C驱动调通,把这个驱动包的文件引入,修改read_data_simple.c文件中的platform_write和platform_read中的SPI或I2C驱动就可以了
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

4
 
正在学习这个,想知道I2C驱动如何修改,cubemx

点评

stm32cubemx 的I2C驱动你会设置吗?  详情 回复 发表于 2019-4-23 17:25
 
 
 

回复

9790

帖子

24

TA的资源

版主

5
 
duguyining 发表于 2019-4-23 16:44
正在学习这个,想知道I2C驱动如何修改,cubemx

stm32cubemx 的I2C驱动你会设置吗?
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

6
 
littleshrimp 发表于 2019-4-23 17:25
stm32cubemx 的I2C驱动你会设置吗?

会啊,但是应该不是单纯的修改plat_read和plat_write函数就可以显示出数值吧

点评

下边是官方的例程,把它移到你用cubemx生成的工程里,把read_data_simple.c里边的几个函数添加你的main.c文件里就可以使用了 记得在main函数里调用example_main函数,或者将其修改为main 具体可以参考我贴子里的st  详情 回复 发表于 2019-4-23 18:54
 
 
 

回复

9790

帖子

24

TA的资源

版主

7
 
duguyining 发表于 2019-4-23 17:47
会啊,但是应该不是单纯的修改plat_read和plat_write函数就可以显示出数值吧

下边是官方的例程,把它移到你用cubemx生成的工程里,把read_data_simple.c里边的几个函数添加你的main.c文件里就可以使用了
记得在main函数里调用example_main函数,或者将其修改为main
具体可以参考我贴子里的stm32l4r5的例程
lsm6dsl_STdC.rar (29.28 KB, 下载次数: 19)
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

8
 
请问楼主LSM9DS1的官方例程怎么修改,用这款STM32芯片

点评

到这里下载LSM9DS1的代码,然后添加到工程,替换LSM9DS1的相关代码即可 https://github.com/STMicroelectronics/STMems_Standard_C_drivers  详情 回复 发表于 2019-4-26 12:38
 
 
 

回复

9790

帖子

24

TA的资源

版主

9
 
duguyining 发表于 2019-4-26 12:12 请问楼主LSM9DS1的官方例程怎么修改,用这款STM32芯片

到这里下载LSM9DS1的代码,然后添加到工程,替换LSM9DS1的相关代码即可

https://github.com/STMicroelectronics/STMems_Standard_C_drivers

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

10
 
下载了,我测试了一下WHO AM I寄存器 读出来的值是\0
 
 
 

回复

9790

帖子

24

TA的资源

版主

11
 
检查一下通信是否正常 看看波形对不
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

12
 
无法查看波形,但是我简单的用以下代码测试了一下
  static uint8_t whoami;
  HAL_I2C_Mem_Read(&hi2c1, 0xD5, WHO_AM_I_XG, I2C_MEMADD_SIZE_8BIT, &whoami, 1, 1000);
  HAL_UART_Transmit(&hlpuart1, &whoami, 1, 1000);
串口显示出来的数据是0

点评

你的器件地址好像没改 下边是LSM9DS1的地址 /** I2C Device Address 8 bit format if SA0=0 -> 0xD5 if SA0=1 -> 0xD7 **/ #define LSM9DS1_IMU_I2C_ADD_L 0xD5U #define LSM9DS1_IMU_I2C_ADD_H 0xD7U  详情 回复 发表于 2019-4-26 15:55
 
 
 

回复

9790

帖子

24

TA的资源

版主

13
 
duguyining 发表于 2019-4-26 15:17 无法查看波形,但是我简单的用以下代码测试了一下 static uint8_t whoami; HAL_I2C_Mem_Read(&hi2c1, ...

你的器件地址好像没改

下边是LSM9DS1的地址

/** I2C Device Address 8 bit format if SA0=0 -> 0xD5 if SA0=1 -> 0xD7 **/
#define LSM9DS1_IMU_I2C_ADD_L 0xD5U
#define LSM9DS1_IMU_I2C_ADD_H 0xD7U


/** I2C Device Address 8 bit format if SA0=0 -> 0x3D if SA0=1 -> 0x39 **/
#define LSM9DS1_MAG_I2C_ADD_L 0x3DU
#define LSM9DS1_MAG_I2C_ADD_H 0x39U

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

14
 
littleshrimp 发表于 2019-4-26 15:55
你的器件地址好像没改

下边是LSM9DS1的地址

/** I2C Device Address 8 bit format if SA0=0 -> 0 ...

static uint8_t who_am_i;
  if (HAL_I2C_Mem_Read(&hi2c1, LSM9DS1_IMU_I2C_ADD_H, LSM9DS1_WHO_AM_I , I2C_MEMADD_SIZE_8BIT, &who_am_i, 1,0x100 != HAL_OK))
            printf("Failed!\n");
改成了这个输出为Failed

点评

回复不能插图片,请看楼上的回贴  详情 回复 发表于 2019-4-26 18:49
 
 
 

回复

9790

帖子

24

TA的资源

版主

15
 

RE: stm32l4r5测试LSM6DSL的STMems_Standard_C_drivers

你再检查一下代码看看哪的问题,这是我刚测试的

 

 

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

9790

帖子

24

TA的资源

版主

16
 
duguyining 发表于 2019-4-26 17:14 static uint8_t who_am_i; if (HAL_I2C_Mem_Read(&hi2c1, LSM9DS1_IMU_I2C_ADD_H, LSM9DS1_WHO_AM_I , ...

回复不能插图片,请看楼上的回贴

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(中级)

17
 
我用的nucleo-iks01a2开发板,接的SB7,所以LSM6DSL的地址是D6,
但是reg.h里面定义的LSM6DSL_I2C_ADD_L是0xD5,LSM6DSL_I2C_ADD_H是0xD7,我把0xD5改成0xD6就可以读出来了。
还有一个问题想请教楼主,他这个读出来的加速度和转速单位是什么?

点评

读出来的数据需要做转换 和你设置的量程有关 官方库里加速度是mg,陀螺仪是mdps  详情 回复 发表于 2019-5-31 08:37
个人签名http://rayuu.com
 
 
 

回复

9790

帖子

24

TA的资源

版主

18
 
禅师 发表于 2019-5-31 08:21
我用的nucleo-iks01a2开发板,接的SB7,所以LSM6DSL的地址是D6,
但是reg.h里面定义的LSM6DSL_I2C_ADD_L是0 ...

读出来的数据需要做转换 和你设置的量程有关 官方库里加速度是mg,陀螺仪是mdps
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

19
 

楼主您好,请问lsm6dsl初始化的时候寄存器应该怎样配置呀,还有就是,正常读出来的数据应该是多少呀?我测试的是静止不动时陀螺仪也就是三个角速度的值是0,但是加速度z轴不是g,量程为4g的时候,z轴的加速度就是4g,而且x,y轴的加速度也不是0

点评

配置可以参照代码,或者看官方的应用笔记。 从你的数据来看应该是错误的,还对比一下who am i寄存器确定通信没有问题  详情 回复 发表于 2019-7-23 12:12
 
 
 

回复

9790

帖子

24

TA的资源

版主

20
 
sylaigym 发表于 2019-7-22 23:30 楼主您好,请问lsm6dsl初始化的时候寄存器应该怎样配置呀,还有就是,正常读出来的数据应该是多少呀?我测 ...

配置可以参照代码,或者看官方的应用笔记。

从你的数据来看应该是错误的,还对比一下who am i寄存器确定通信没有问题

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表