注册/登录
论坛 > 体验区
发帖|
看2457|回12|收藏
xquery 看全部
2018-11-19 22:50:43
[传感器大派送]+ 基于STM32的BM1422地磁传感器测试

前言
    感谢ROHM社区提供的传感器套件,BM1422AGMV是一款三轴地磁传感器模块。

测试目标
1、依托于STM32开发板测试BM1422AGMV模块,通过串口打印出三轴地磁数据。
2、彻底的了解该模块的性能

硬件组成与连接
1、STM32F723E-DISCO开发板
2、ROHM的传感器底板Sensor Shield
3BM1422AGMV气压传感器
11.jpg
由于STM32F723E-DISCO开发板有arduino接口,插上ROHM的传感器底板刚好合适,不需要额外的接线,十分方便,最后将我们的BM1422AGMV传感器模块插入传感器底板的I2C_3接口即可。
注意需要修改传感器供电,我这里选择的是3V,安装完成如下图:
22.jpg


传感器认识
了解任何一款传感器,最好的方式就是熟读它的数据手册,通过读本传感器芯片的数据手册,了解到该传感器的性能如下:
    1、本传感器的IIC设备7位地址是:0001111,即0x1C;标准IIC时序,最大通讯速度为400KHZ.
33.jpg
2、芯片的地磁数据分为12bit/14bit,可以连续转换也可以单次转换,我使用的是14bit的连续使用方式。
44.jpg
按照上图的顺序,初始化代码如下:
55.jpg
读取三轴地磁数据:
      66.jpg
需要说明的是,本函数转化的磁场数值单位为uT,将地磁数据读出来除24,在官方的数据手册中,并没有说明,我是查看了官方的arduino代码才得到除24的。
同样,芯片的0x60 0x61温度数据寄存器的数据与实际温度之间的关系,文档上没有这方面的描述,官方的arduino同样也没有,估计只有好官方的技术支持了。
在程序中,只需要将只需要调用rohm_bm1422agmv_Init()函数和rohm_bm1422agmv_GetMagVal()函数即可。串口数据打印如下:
      667.jpg
另外关于传感器的校准方式,官方有这样的提到:
77.jpg
这个校准方式,目前还不是很明白,打算后期做个电子罗盘的时候,问问ROHM的技术工程师。
详细程序见附件:
STM32F723_Discovery.rar (15.51 MB)
(下载次数: 45, 2018-11-19 22:50 上传)

下载积分: ROHM金币 -3


wudianjun2001 看全部
2018-11-20 10:57:00
ST的板子不错
stary666 看全部
2018-11-20 11:39:02
看看 logo.png
stary666 看全部
2018-11-20 11:39:32
不错
流水源 看全部
2018-11-21 09:22:15
66666666666666
123下一页

罗姆半导体技术社区

Powered by Discuz! X3.4

首页|标准版|触屏版|电脑版