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

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

[复制链接]
jundao721 发布时间:2024-8-5 20:44
      这两天测试了一下板载的IIS2DH加速度传感器,这是一款低功耗的3轴加速度计,低功耗时能达到2uA,在工业领域广泛应用。从原理图上看,也是连接了SPI3接口,如图1所示:
2 n9 a) M3 r7 o, Z8 t8 E7 d
' o8 p& l& J( Q, B 3-1.JPG 8 B/ G+ }6 ~: A  q2 h

# F" b$ [% x, m/ Q5 G+ c- X$ R图1  u' n4 ~) u5 k; a0 C! {
      除了INT2和CS引脚需要重新配置,其他的配置和上一篇是相同的,在CubeMx中很方便重新建立工程文件。想着测试应该是很顺利的,但是能读Device ID,不能读取数据,一度不知道什么原因。隔了一天发现,是CS引脚在程序中搞错了,很多问题往往都是粗心大意导致的。来看软件,初始定义还是参考官方的例程,库也是使用官方的,这样测试比较节省时间。3 ^  z0 L: b. X- s! \
初始化如下:
0 s% ^1 z% M/ [5 u
  1. dev_ctx .write_reg = platform_write ;
    $ V5 {' w/ ]* o/ q& s0 R2 u
  2.         dev_ctx  .read_reg = platform_read ;
    . r0 f8 P+ Y. j8 ^( G
  3.         dev_ctx  .handle = &hspi3 ;
    * g9 M/ y2 M! F9 _( |. o) J2 G
  4.         HAL_Delay(10);7 C; _$ m$ h. k' y
  5.        
    2 y" J* Z) w6 o. [
  6. //        IIS2DH_ReadID(&Obj ,&whoamI);+ z9 O9 R+ P0 a1 _# V
  7. iis2dh_device_id_get(&dev_ctx, &whoamI);% ]) r: s8 u; T, ~8 H
  8. //        1 R9 m' F/ Z4 A7 C: H7 K/ a' x
  9. //        IIS2DH_Init(&Obj);3 z+ R. R2 I. q- h

  10. * n$ f2 _) l, ^
  11.         iis2dh_block_data_update_set(&dev_ctx , PROPERTY_ENABLE);
    . ?  c" Y; T8 O" c% G
  12.         /* Set Output Data Rate to 1Hz */8 b. W# b( v" ?: Y
  13.   iis2dh_data_rate_set(&dev_ctx , IIS2DH_ODR_1Hz);0 |* _  k/ h1 t: K2 f
  14.   /* Set full scale to 2g */
    & r4 i9 a/ k0 {5 F- q  [4 Y
  15.   iis2dh_full_scale_set(&dev_ctx , IIS2DH_2g);& v% s7 [  K2 f, m& g. L# p! A% z
  16. //  /* Enable temperature sensor */0 H1 T$ C& A, S$ A# r2 [% v
  17.   iis2dh_temperature_meas_set(&dev_ctx, IIS2DH_TEMP_ENABLE);
    # p! {/ i+ Y7 P' J" D! Q% o. ^0 H: E
  18. //  /* Set device in continuous mode with 12 bit resol. */
    ( B& E' k3 }% |3 `
  19.   iis2dh_operating_mode_set(&dev_ctx , IIS2DH_HR_12bit);
复制代码
8 R! n! S- j6 S* Z  ^
8 z0 }5 a: V3 e( h+ v9 N& U
读取加速度数据如下:
% s1 m2 a1 r5 d
  1. iis2dh_xl_data_ready_get(&dev_ctx , &ddbyte );0 \  i8 s% ~& f/ }+ i/ [
  2.          if(ddbyte )( ^+ h) g8 S  `" j, b3 b
  3.          {
    - j7 `  a4 ~( V5 `! Z. |
  4.                  /* Read accelerometer data */
    . g0 z1 M. G" T) H- _2 X
  5.       memset(data_raw_acceleration, 0x00, 3 * sizeof(int16_t));
    : d0 i, U8 t0 P* R  I
  6.                  " k& O6 P$ X5 I( A3 f, p  ^9 {; k
  7.       iis2dh_acceleration_raw_get(&dev_ctx , data_raw_acceleration);
    0 A6 h5 _; v5 j; n- Q1 L
  8.                  
    ( S/ ]8 {! p( \: ]
  9.       acceleration_mg[0] =iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[0]);
    * o5 o/ J1 N& I2 N* T. t
  10.                  
    1 ^/ Q9 G" z+ z. Q- Z& E
  11.       acceleration_mg[1] =iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[1]);
    ! o) `, u6 B% Y6 @) Q. }7 I
  12.                  
    ) E3 O$ j- P+ y9 d
  13.       acceleration_mg[2] = iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[2]);8 n; f# F* \' g# X
  14.          }
复制代码

" O& P$ X6 @0 e0 ~% k: i. Y% v" f  }' s- }( g
读取温度数据如下:
9 z+ |9 q% N6 f% K6 |7 z' ?/ |" N9 y8 V( }6 E
iis2dh_temp_data_ready_get(&dev_ctx , &ddbyte );
9 |4 Z5 t+ i, r! H* u
/ ]8 C7 E$ F! b) f6 b7 ~) T1 I    if (ddbyte)
6 P0 e0 ]5 h& Q9 q$ f                        {, L- c" R# i' c# b) y/ v$ L+ R
      /* Read temperature data */. s/ d  y9 f- E* h4 b& }
      memset(&data_raw_temperature, 0x00, sizeof(int16_t));$ X; j+ c. J: L; ]
      iis2dh_temperature_raw_get(&dev_ctx, &data_raw_temperature);7 y( T7 h9 s4 \9 A* X
      temperature_degC =iis2dh_from_lsb_hr_to_celsius(data_raw_temperature);/ o  h$ Q* s9 d+ a! m, C: n
                  }
. B0 Q& d3 |; A# d; X6 L) J$ E) k, v/ y. K) g9 ~* |2 w9 x8 U  O8 \
测量结果如图2所示:
4 ]* s/ }8 {; @/ J+ ? 3-2.JPG
' n  K) u2 U( L' C2 T0 ~0 L$ o! x1 x) K; `
图2+ u0 Q: {6 e" |1 k, L) [0 A, B
有一些功能还没测试,要深入学习才有所得。1 v" b6 h  R  q$ y$ }( g: @
收藏 评论4 发布时间:2024-8-5 20:44

举报

4个回答
y369369 回答时间:2024-10-18 09:41:05
这个实际功耗能做到多少啊
+ {; X- R) r0 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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版