你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STWINKT1B评测】3.读写IIS2DH加速度传感器

[复制链接]
jundao721 发布时间:2024-8-5 20:44
      这两天测试了一下板载的IIS2DH加速度传感器,这是一款低功耗的3轴加速度计,低功耗时能达到2uA,在工业领域广泛应用。从原理图上看,也是连接了SPI3接口,如图1所示:3 Z5 w6 S" b. U
3 L. l$ T. B' Y2 p$ A; Q
3-1.JPG ' \! q; u1 ]! @6 N+ r4 o- ^
- C3 ?( I7 V; Z$ }5 V3 f
图14 {$ R" `; I: Y/ A4 ?" w
      除了INT2和CS引脚需要重新配置,其他的配置和上一篇是相同的,在CubeMx中很方便重新建立工程文件。想着测试应该是很顺利的,但是能读Device ID,不能读取数据,一度不知道什么原因。隔了一天发现,是CS引脚在程序中搞错了,很多问题往往都是粗心大意导致的。来看软件,初始定义还是参考官方的例程,库也是使用官方的,这样测试比较节省时间。3 J* z6 i( l0 K# W! N; v1 o
初始化如下:! ~7 u% @* v) f3 j
  1. dev_ctx .write_reg = platform_write ;/ n# A' P: r1 c1 S7 K+ Y2 _3 A
  2.         dev_ctx  .read_reg = platform_read ;
    + l! C& n4 w% ~" y% j% T
  3.         dev_ctx  .handle = &hspi3 ;
    8 [9 X& U' a- S' y5 n- Y
  4.         HAL_Delay(10);
    ( z/ ^7 ^6 O6 i: ^, K- @  |% i
  5.         8 ]# Z% i' p! z. u
  6. //        IIS2DH_ReadID(&Obj ,&whoamI);
    - Q# p' Q! F1 e9 N" f2 O
  7. iis2dh_device_id_get(&dev_ctx, &whoamI);
    $ T- d. k) u- K2 h- `3 M
  8. //       
    & q# }; c: c4 b& T8 C7 P7 E
  9. //        IIS2DH_Init(&Obj);2 C0 i# c& N$ f, ^/ ^

  10. $ ^) s1 a: s  I7 o* L7 H9 G
  11.         iis2dh_block_data_update_set(&dev_ctx , PROPERTY_ENABLE);
    : _$ @* J5 Z! A  f! n/ j, t# |
  12.         /* Set Output Data Rate to 1Hz */
    + y) D+ l2 ~9 ]8 l0 L6 m% \
  13.   iis2dh_data_rate_set(&dev_ctx , IIS2DH_ODR_1Hz);% F: {. W$ r6 o* ~" x8 I
  14.   /* Set full scale to 2g */
    . j" |) C, A2 ?- \) a7 _( ~5 }
  15.   iis2dh_full_scale_set(&dev_ctx , IIS2DH_2g);' H% E+ U: b0 v; w2 v
  16. //  /* Enable temperature sensor */: ~' ]. N- i8 S. I$ a
  17.   iis2dh_temperature_meas_set(&dev_ctx, IIS2DH_TEMP_ENABLE);
    6 {, Q: Q( c9 F/ Q5 J9 }9 j) y% D
  18. //  /* Set device in continuous mode with 12 bit resol. */6 J* \* P, [" u4 K4 S
  19.   iis2dh_operating_mode_set(&dev_ctx , IIS2DH_HR_12bit);
复制代码

3 `, D* A3 L. \+ B0 r" [3 d; D0 s6 a- P6 _; K
读取加速度数据如下:
+ l5 S# V: [4 k7 W4 {
  1. iis2dh_xl_data_ready_get(&dev_ctx , &ddbyte );! F  c3 j& _/ o0 O7 u
  2.          if(ddbyte )
    7 j$ Q; G! P! {: Z: g2 \% j
  3.          {
    $ g% H7 v7 A) y3 g/ s) L8 k7 M
  4.                  /* Read accelerometer data */1 r( }+ |3 d- O4 {: M9 m, l1 B
  5.       memset(data_raw_acceleration, 0x00, 3 * sizeof(int16_t));
    & G0 L7 l0 {: e. |& }
  6.                  
    6 B, [1 X( e7 H6 o8 A1 R
  7.       iis2dh_acceleration_raw_get(&dev_ctx , data_raw_acceleration);
    & d0 S: F$ b% K! L" ^1 M' @/ A
  8.                  
    ' T2 J; I0 E& }1 p9 E9 b8 x
  9.       acceleration_mg[0] =iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[0]);
    9 m5 \' B7 F. M
  10.                  & k- E# n2 A( L; p
  11.       acceleration_mg[1] =iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[1]);
      r# y! L, v1 D. A/ G2 n- T
  12.                  - H) m1 A) e9 f- r6 F4 V
  13.       acceleration_mg[2] = iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[2]);
    7 [# Q3 P8 L& }9 f3 W, M* ~6 D7 O/ C
  14.          }
复制代码

/ [  E8 w+ B& Z& s, U4 b4 y5 {  Z! ^0 G# U) ?2 c( K# x
读取温度数据如下:
  F9 c  i" d  L6 }2 o  {
* A4 E$ F/ p8 i! x7 M$ Liis2dh_temp_data_ready_get(&dev_ctx , &ddbyte );
" S1 h$ c% d) e' r' p$ V. I5 t1 o/ t1 U8 O/ n* A+ y+ {
    if (ddbyte) 6 K  w: j7 i$ p& t  I0 W5 x
                        {( q: L. p, s9 f# T4 ^* [
      /* Read temperature data */9 p' I  u/ d4 D* F4 S! G) l2 c
      memset(&data_raw_temperature, 0x00, sizeof(int16_t));
# @' d1 s# e# p/ v$ g: o) C* Y) @      iis2dh_temperature_raw_get(&dev_ctx, &data_raw_temperature);
0 q  x# b% i+ O, _; k$ y7 t      temperature_degC =iis2dh_from_lsb_hr_to_celsius(data_raw_temperature);
. l: |) U% r! u2 l9 z                  }
. N/ w. C2 `" ~5 Q9 O/ u! F" Z$ I4 r6 [6 }- |" I. x5 M/ u; I5 `
测量结果如图2所示:
/ E4 m! W7 Z3 J, F4 | 3-2.JPG : y3 }) E/ m) i
$ d7 c$ g# l' b8 M6 t$ z1 g
图22 O/ d4 J2 D* X9 N# P
有一些功能还没测试,要深入学习才有所得。4 J' y/ o% T/ f% ^
赞 收藏 评论4 发布时间:2024-8-5 20:44

举报

4个回答
y369369 回答时间:2024-10-18 09:41:05
这个实际功耗能做到多少啊8 A( m/ @& V$ v" m6 H6 E
养乐多 回答时间:2024-10-18 10:14:48
可以多测测其他的
embiied 回答时间:2024-10-18 10:35:55

y369369 发表于 2024-10-18 09:41
这个实际功耗能做到多少啊

這個時候測功耗意義不大吧

ghost110 回答时间:2024-10-18 10:37:12

共同学习

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版