热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

资产跟踪设备中BMA250E获取三轴加速度数值驱动代码

近年来随着互联网的发展,线上购物与交通运输行业也随之发展。线上购物为传统的生产制造注入了新的活力。除了B2C线上交易得到了质的飞跃外,传统的B2B贸易也

近年来随着互联网的发展,线上购物与交通运输行业也随之发展。线上购物为传统的生产制造注入了新的活力。除了B2C线上交易得到了质的飞跃外,传统的B2B贸易也逐渐线上化。但运输过程中的风险一直是交易中企业双方所关心的重点话题。资产监测设备结合物联网技术能够对货物的实时位置、状态与运动轨迹等,为货物的运输的监测提供新的解决方案。
在这里插入图片描述
资产监测设备中结合了多种类型的传感器,来搜集资产的实时状况,通过通信模块与网络将信息传递至云端后台。
在这里插入图片描述
近期在某个定制资产跟踪设备的新项目合作过程中,开发人员遇到了如何用BMA250E获取三轴加速度数值驱动代码的问题,经过开发人员的进一步确认,提出了以下解决方案:
在这里插入图片描述

BMA250E是一款针对消费电子类应用的低重力、数字式加速度传感器,能够测量三个相互正交的方向上的加速度大小。测量值由传感器的ASIC电路,通过将采用了差动电容原理的,加速度微机械感应结构的输出值转换得到。BMA250E的封装和接口设计可以满足大多数情况下的硬件需求,极微小的引脚加上扁平的外形封装非常适合于移动平台的应用。

//读取一个字节数据

uint8_t Bsp_Gsensor_ReadByte(uint8_t reg_addr)
{
uint8_t data;

Bsp_Gsensor_IIC_Start();

Bsp_Gsensor_IIC_Write_Byte(Bsp_Gsensor_IIC_ADDR);
Bsp_Gsensor_IIC_Wait_Ack();
Bsp_Gsensor_IIC_Write_Byte(reg_addr);

// Bsp_Gsensor_IIC_Stop();

Bsp_Gsensor_IIC_Write_Byte(Bsp_Gsensor_IIC_ADDR + 0x01);

data = Bsp_Gsensor_IIC_Read_Byte(0);//发送NACK 停止传输
Bsp_Gsensor_IIC_Stop();

return data;
}
//三轴加速度结构体
typedef struct
float x;
float y;
float z;
}ACCD_t;

//获取加速度 返回值:float 加速度 单位:g
void Gsensor_GetACCD(ACCD_t *accd)
const uint16_t AccdNum = 3;

int16_t accd_value;
int16_t accd_l,accd_m;
float accd_f;

uint8_t xyz[AccdNum][2]
= {{Gsensor_REG_ACCD_X_LSB,Gsensor_REG_ACCD_X_MSB},
{Gsensor_REG_ACCD_Y_LSB,Gsensor_REG_ACCD_Y_MSB},
{Gsensor_REG_ACCD_Z_LSB,Gsensor_REG_ACCD_Z_MSB}};

for(uint16_t i &#61; 0;i <3;i&#43;&#43;)
{
accd_l &#61; (Bsp_Gsensor_ReadByte(xyz[i][0])>>2);
accd_m &#61; Bsp_Gsensor_ReadByte(xyz[i][1]);

accd_value &#61; (accd_l>>6) &#43; (accd_m<<2);

accd_value &&#61; 0x03ff;

if(accd_value >> 9)//负数
accd_value &&#61; 0x01ff;
accd_value &#61; ~accd_value;
accd_value &#43;&#61; 1;
accd_value &#61; - accd_value;
accd_f &#61; (accd_value*Gsensor_MeasureRange/1024.0);
switch (i)
case 0:
accd->x &#61; accd_f;
break;
case 1:
accd->y &#61; accd_f;
case 2:
accd->z &#61; accd_f;
default:
}
从事物联网资产跟踪设备的其他开发人员&#xff0c;在遇到类似问题时&#xff0c;可参考以上内容。


推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • ***byte(字节)根据长度转成kb(千字节)和mb(兆字节)**parambytes*return*publicstaticStringbytes2kb(longbytes){ ... [详细]
author-avatar
温倩0918
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有