1253|7

126

帖子

1

TA的资源

一粒金砂(高级)

楼主
 

ST-MEMS传感器驱动移植 [复制链接]

 
本帖最后由 电子烂人 于 2024-6-14 14:08 编辑

最近在用ST的传感器和开发板做东西,在这里写点移植的教程给学弟参考用,参考了好多帖子和文章,可能有雷同,如有错误请大佬指出

 

所用板卡:nucleo-H563ZI

所用传感器:MK192(lsm6dso)

开发环境:STM32CUBEIDE

 

在cubeide里新建一个工程,选择板卡为H563:

这个板卡的晶振是配置好的,只需要配置基本的DEBUG
由于需要和传感器通信,所以额外配置一组I2C,速度选择FAST(400KHZ):
 
 

双击Middleware 中的MEMS进入包选择LSM6DSOX,通信方式选择I2C:

   

 

使能ACCGYR,并连接到I2C上,我用的IKS01A1的mems板,故引脚为PB8\PB9

 

保存以生成代码,H5有icache,我们这里不用,直接生成代码

这样工程就建好了,不过还没有传感器的驱动,需要再新建一个示例工程:

这里以    U575的"Active Time "为例:

 

这个工程导入后如图,我们需要移植图中的三个文件到H5的工程目录下

  

 

复制如图的几个文件:

 

复制后还需要导入到工程中:

 

 

同时在SOURE里添加代码所在的文件夹

 

先写这样  ,备考四六级去了,等我回来再更新

 

最新回复

一定要放到已经添加路径下面,找不到文件可能就是没有添加路径   详情 回复 发表于 2024-6-17 10:55
点赞 关注
个人签名

没用比没有强

 
 

回复
举报

5220

帖子

239

TA的资源

管理员

沙发
 

四六级一起备考啊

祝楼主考好,归来继续更新,哈哈

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

6767

帖子

2

TA的资源

版主

板凳
 

st传感器的例程封装挺深的,会移植也是很不错的~

 
 
 

回复

6841

帖子

11

TA的资源

版主

4
 
用多了mdk,感觉eclipse下面添加文件,也是挺麻烦的事。

点评

eclipse下面添加文件是不是不用主动添加啊,只要放到文件夹上刷新一下就出来了  详情 回复 发表于 2024-6-17 09:11
 
 
 

回复

6060

帖子

6

TA的资源

版主

5
 
lugl4313820 发表于 2024-6-15 06:19 用多了mdk,感觉eclipse下面添加文件,也是挺麻烦的事。

eclipse下面添加文件是不是不用主动添加啊,只要放到文件夹上刷新一下就出来了

点评

有时会提示找不到文件,可能我没有用习惯,有时好象给的是快捷方式。  详情 回复 发表于 2024-6-17 10:13
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

6841

帖子

11

TA的资源

版主

6
 
秦天qintian0303 发表于 2024-6-17 09:11 eclipse下面添加文件是不是不用主动添加啊,只要放到文件夹上刷新一下就出来了

有时会提示找不到文件,可能我没有用习惯,有时好象给的是快捷方式。

点评

一定要放到已经添加路径下面,找不到文件可能就是没有添加路径  详情 回复 发表于 2024-6-17 10:55
 
 
 

回复

6060

帖子

6

TA的资源

版主

7
 
lugl4313820 发表于 2024-6-17 10:13 有时会提示找不到文件,可能我没有用习惯,有时好象给的是快捷方式。

一定要放到已经添加路径下面,找不到文件可能就是没有添加路径

个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

126

帖子

1

TA的资源

一粒金砂(高级)

8
 
本帖最后由 电子烂人 于 2024-6-21 01:44 编辑

继续回来更新:
生成代码后会发现,根目录多了一个
x-cube-mems1的文件夹,里面包含几种传感器

 

先来介绍下这三个代码文件的含义:

1.Custom_mems_conf_app.h:这里面包含了传感器的几种参数,如量程、速度等;


#ifdef USE_CUSTOM_MOTION_SENSOR_LSM6DSO_0
  #if (USE_CUSTOM_MOTION_SENSOR_LSM6DSO_0 == 1)
    #ifndef CUSTOM_ACC_INSTANCE_0
      #define CUSTOM_ACC_INSTANCE_0 CUSTOM_LSM6DSO_0
      #define CUSTOM_ACC_INSTANCE_NAME_0 "LSM6DSO"
      #define CUSTOM_ACC_INSTANCE_ODR_0 {10, 12.5, 26, 52, 104, 208, 417, 833, 1667, 3333, 6667} /* Hz */
      #define CUSTOM_ACC_INSTANCE_FS_0 {4, 2, 4, 8, 16} /* g */
      #ifndef ACC_GYR_UNICLEO_ID
        #define ACC_GYR_UNICLEO_ID LSM6DSO_UNICLEO_ID
      #endif
    #endif
    #ifndef CUSTOM_GYR_INSTANCE_0
      #define CUSTOM_GYR_INSTANCE_0 CUSTOM_LSM6DSO_0
      #define CUSTOM_GYR_INSTANCE_NAME_0 "LSM6DSO"
      #define CUSTOM_GYR_INSTANCE_ODR_0 {10, 12.5, 26, 52, 104, 208, 417, 833, 1667, 3333, 6667} /* Hz */
      #define CUSTOM_GYR_INSTANCE_FS_0 {5, 125, 250, 500, 1000, 2000} /* dps */
      #ifndef ACC_GYR_UNICLEO_ID
        #define ACC_GYR_UNICLEO_ID LSM6DSO_UNICLEO_ID
      #endif
    #endif
  #endif
#endif

2. Custom_mems_conf.h:这里面包含着传感器的初始化、读取写入等指令操作

#define USE_CUSTOM_MOTION_SENSOR_LSM6DSO_0        0U


#define CUSTOM_LSM6DSO_0_I2C_Init BSP_I2C1_Init
#define CUSTOM_LSM6DSO_0_I2C_DeInit BSP_I2C1_DeInit
#define CUSTOM_LSM6DSO_0_I2C_ReadReg BSP_I2C1_ReadReg
#define CUSTOM_LSM6DSO_0_I2C_WriteReg BSP_I2C1_WriteReg

#ifdef __cplusplus
}
#endif

3.sensor_unicleo.h:这里面包含着诸多传感器的UNICLEO_ID用于 Unicleo-GUI 应用程序区分诸多传感器。

#define LSM6DSO_UNICLEO_ID          7

 

个人签名

没用比没有强

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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