首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能告诉我4/ 32768.0是什么意思吗

有人能告诉我4/ 32768.0是什么意思吗
EN

Stack Overflow用户
提问于 2022-02-13 13:41:55
回答 1查看 90关注 0票数 -1

我正在使用arduino nano 33 Ble,使用Lib Arduino_LSM9DS1试图理解这个方程,但我不明白

所述数据*4/ 32768在lsb 32768之后。它应该是一个16位严格,其中lsb应该2^16 = 65536。还是更多地使用-+ 32768?那具体是4呢?为什么使用这个不响an 8或16?

有人能向我解释吗?加速度是如何得到的,在哪个单元中?

代码语言:javascript
复制
int LSM9DS1Class::readAcceleration(float& x, float& y, float& z)
{
  int16_t data[3];

  if (!readRegisters(LSM9DS1_ADDRESS, LSM9DS1_OUT_X_XL, (uint8_t*)data, sizeof(data))) {
    x = NAN;
    y = NAN;
    z = NAN;

    return 0;
  }

  x = data[0] * 4.0 / 32768.0;
  y = data[1] * 4.0 / 32768.0;
  z = data[2] * 4.0 / 32768.0;

  return 1;
} 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-13 13:54:58

文档指出:

加速度计范围设定为-4 +4g -/+0.122 mg。

因此,函数readAcceleration返回的值在-4,4范围内,表示-4g到4g

g重力加速度 = 9.81 m/s2

您显示的代码是函数readAcceleration的实现。据我所知,原始加速数据表示为16位有符号整数(介于−32,768至32,767之间),然后被规范化(除以32,768),然后乘以4,使之处于-4,4的正确范围。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71101200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档