3966|5

9744

帖子

24

TA的资源

版主

楼主
 

如何快速通过STM32单片机实现ST传感器的驱动测试 [复制链接]

 

今天我将要向大家介绍如何快速通过STM32单片机实现ST传感器的驱动测试。本次我们使用的传感器是LSM6DSOX,因为SensorTile.box开发板集成了这颗传感器,所以我将用SensorTile.box来演示,如何通过开发板上的STM32L4R9单片机驱动LSM6DSOX,实现加速度的陀螺仪的数据读取。

因为ST传感器提供了非常强大的传感器驱动和演示工程,在STM32单片机里甚至不用写一行代码就可以完成传感器测试。

本帖适合对传感器或者STM32单片机不是特别熟悉的新手,对于有一定的开发经验的网友,本帖所授技术一搬经过自己简单摸索就能完成,看到这里下边内容应该就不需要再看了。

以下内容同样适用于ST的其它传感器和STM32其它单片机,不同之处在于连接传感器的端口要根据传感器的实际连接情况来配置。

首先在ST官网找到LSM6DSOX的产品页面,然后点开Tool&Software选项卡,找到C-Driver-MEMS软件资源,点开。找到Get from Github跳转到Github网站,再选Code->Download ZIP,将STMems_Standard_C_drivers驱动包下载到本地。

 

 

 

 

         将下载好的STMems_Standard_C_drivers解压,找到LSM6DSOX文件夹,在drivers下的2个文件就是lsm6dsox的驱动文件。再打开example文件夹,可以看到很多演示代码,本次使用lsm6dsox_read_data_polling.c文件实现传感器数据的轮询读取,再通过STM32L4R9USB虚拟串口将数据发送到电脑。

        

 

 

打开STM32CubeMX,创建一个工程,选择对应的单片机型号后点Start Project,在Pinout&Configuration里找到Connectivity下的SPI1Mode选择Full-Duplex Master,修改Prescaler数值使时钟频率符合要求,将Data Size设置为8 Bit。根据SensorTile.box原理图设置SPI对应的引脚,设置LSM6DSOXCS引脚,设置CS引脚的标签比如CS_LSM6DSOX

 

 

 

 

 

 

 

接着在Pinout&Configuration里找到Connectivity下的USB_OTG_FSMode选择Device_Only,其它默认。在Middleware里找到USB_DEVICEClass For FS IP设置为Communication Device Class(Virtual Port Com)其它默认,这样USB虚拟串口就设置好了。

 

        

Clock Configuration里把时钟改为120MHzCLK48 Clock Mux选择HSI48,接着在Project ManagerProject里给工程起一个名字,选择对应的工程路径,选择对应的IDE,这里我选择了STM32CubeIDE,它是ST官方推出的基于eclipse开发的免费工具,非常好用。

然后在Code Generator里把Copy all used libraries into the project folder改为Copy only the necessary library files,只复制用到的库,这样生成的工程会小一些。点击右上角的GENERATE CODE按钮生成工程文件和初始化代码。

 

 

 

 

 

         工程生成好后点Open Project,使用对应的IDE打开工程文件。在STM32CubeIDE里将lsm6dsox_read_data_polling.clsm6dsox_reg.c复现到Src文件夹,将lsm6dsox_reg.h复制到Inc文件夹。

打开lsm6dsox_read_data_polling.c引用main.h头文件,添加hspi1的引用,将dev_ctx.handle设置成hspi1,去掉platform_writeplatform_read函数里和SPI无关的代码,将CS操作改为CS_LSM6DSOX对应的端口和引脚,去掉tx_com函数里除CDC_Transmit_FS以外的代码。

 

 

 

 

 

 

 

main.c文件里引用并在main函数里执行lsm6dsox_read_data_polling函数。工程设置里勾选use float with printf from newlib-nano(-u _printf_float)解除编译器警告,然后编译工程。

 

 

 

         连接调试器和开发板,下载固件到STM32单片机,打开串口软件连接后便能看到对应的传感器数据。

 

下期我会通过视频做一个完整的演示。

 

熟悉STM32CubeMX工具的网友应该会发现STM32CubeMX里集成的X-CUBE-MEMS1扩展包已经集成了几乎所有的ST传感器驱动,使用STM32CubeMX添加对应的传感器驱动也比较方便,选择哪种方式就看个人习惯了。

最新回复

大佬出品必属精品   详情 回复 发表于 2021-3-1 21:53
点赞(1) 关注(1)
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 

回复
举报

5237

帖子

239

TA的资源

管理员

沙发
 

@jinglixixi

可以看看

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

点评

已看到,有参考价值。    详情 回复 发表于 2021-2-26 09:36
 
 

回复

1469

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
nmg 发表于 2021-2-26 08:53 @jinglixixi 可以看看

已看到,有参考价值。

 

 
 
 

回复

1411

帖子

3

TA的资源

版主

4
 
感谢分享,写的非常详细
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 

感谢分享,写的非常详细

 
 
 

回复

7514

帖子

18

TA的资源

五彩晶圆(高级)

6
 

大佬出品必属精品

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表