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

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

[复制链接]
jundao721 发布时间:2024-8-5 20:44
      这两天测试了一下板载的IIS2DH加速度传感器,这是一款低功耗的3轴加速度计,低功耗时能达到2uA,在工业领域广泛应用。从原理图上看,也是连接了SPI3接口,如图1所示:; R* r4 v7 R7 `* @0 m3 f
. z8 u3 b' t. U- b' D. k7 o& {
3-1.JPG * G9 d" a$ [5 B2 p3 \8 f) |
/ O+ \, @6 m1 k7 I1 G" \9 b* ~
图1$ N( _& H9 B. Y# O" B% w* s
      除了INT2和CS引脚需要重新配置,其他的配置和上一篇是相同的,在CubeMx中很方便重新建立工程文件。想着测试应该是很顺利的,但是能读Device ID,不能读取数据,一度不知道什么原因。隔了一天发现,是CS引脚在程序中搞错了,很多问题往往都是粗心大意导致的。来看软件,初始定义还是参考官方的例程,库也是使用官方的,这样测试比较节省时间。
7 ]1 S) k: ~6 w- I7 u  v初始化如下:: c- j0 G( a7 q$ p# c9 o7 t
  1. dev_ctx .write_reg = platform_write ;/ b2 ^' ?- A3 Z3 H5 l; f0 S
  2.         dev_ctx  .read_reg = platform_read ;! R- u, _( W- J
  3.         dev_ctx  .handle = &hspi3 ;
    ' B4 @; A, O& e3 X* Y9 C# I
  4.         HAL_Delay(10);, Z3 f: c' l) f$ C2 e
  5.         $ V' F1 s: k9 h% R
  6. //        IIS2DH_ReadID(&Obj ,&whoamI);) _3 b* V) y* U  u: V) b) c! L
  7. iis2dh_device_id_get(&dev_ctx, &whoamI);8 B* a, _8 c& ]8 c, _
  8. //       
    4 s( s% C  Q3 |1 p5 q
  9. //        IIS2DH_Init(&Obj);6 \8 i* s! }/ ?' @8 k

  10. ' O" n; v, X- B1 ?1 U- c/ {7 [
  11.         iis2dh_block_data_update_set(&dev_ctx , PROPERTY_ENABLE);6 ?/ k; O* z1 H' b
  12.         /* Set Output Data Rate to 1Hz */
    ; M& r" v* K9 R' L" W4 c
  13.   iis2dh_data_rate_set(&dev_ctx , IIS2DH_ODR_1Hz);' m( m& U( c. O- T- p* L3 I6 X
  14.   /* Set full scale to 2g */
    # v5 K6 L: `5 T$ h
  15.   iis2dh_full_scale_set(&dev_ctx , IIS2DH_2g);; y. [* p$ h$ ]) z8 T6 c1 U- U
  16. //  /* Enable temperature sensor */
    * \7 n% \8 T0 A" E) S  Z' x4 n# c
  17.   iis2dh_temperature_meas_set(&dev_ctx, IIS2DH_TEMP_ENABLE);: [- z& A- q# b# i. f* b, G& ~0 ^7 S
  18. //  /* Set device in continuous mode with 12 bit resol. */. C4 y4 v) w$ K$ y6 ^) [( f- o
  19.   iis2dh_operating_mode_set(&dev_ctx , IIS2DH_HR_12bit);
复制代码
. O3 Z. b, c/ H/ ?* B+ {
6 X/ j- r6 E7 M; A" f
读取加速度数据如下:8 Y% E7 U! t0 Y7 E! ^
  1. iis2dh_xl_data_ready_get(&dev_ctx , &ddbyte );7 M/ l6 u. ^0 o1 t4 d
  2.          if(ddbyte )
    7 z: O+ L' @2 \7 \0 B' A
  3.          {
    * E# I" I1 G/ c6 y3 f7 A
  4.                  /* Read accelerometer data */
    6 J6 n) s1 D+ W9 k$ K7 q% a
  5.       memset(data_raw_acceleration, 0x00, 3 * sizeof(int16_t));/ k' {) n# o* J0 G
  6.                  4 i6 V& W( \. V1 {* ?* g$ ]& [
  7.       iis2dh_acceleration_raw_get(&dev_ctx , data_raw_acceleration);5 ^% @$ s& U! v# Y9 U' z1 T
  8.                  ' A( W, p% n% n& Q& s7 t# d
  9.       acceleration_mg[0] =iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[0]);
    , C2 @( H7 N8 ~" g" u9 Z: q
  10.                  : f) }( _9 R+ _! Z
  11.       acceleration_mg[1] =iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[1]);
    % f3 M) h. [! S
  12.                  % J+ \8 ]% p' t6 f, M! }% U
  13.       acceleration_mg[2] = iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[2]);4 J6 v2 {" _- l! V5 u6 l
  14.          }
复制代码
2 G# B. ?0 N7 |4 T8 E4 M

" G; ^6 z7 V  }读取温度数据如下:
/ b- m% j; R0 F7 X# |- M; m2 c" d5 e
iis2dh_temp_data_ready_get(&dev_ctx , &ddbyte );5 r# T. b* G5 y( |; z& J. J3 j

" Z6 b' o2 v- N5 `& [, e    if (ddbyte)
) c5 k/ g; u2 F" e                        {* ]" A, P* n6 _1 g3 H
      /* Read temperature data */; H' V- v+ F* t
      memset(&data_raw_temperature, 0x00, sizeof(int16_t));3 ]: P8 n; m: m5 K. B
      iis2dh_temperature_raw_get(&dev_ctx, &data_raw_temperature);& C( D9 T0 z- @$ _+ W6 n2 @
      temperature_degC =iis2dh_from_lsb_hr_to_celsius(data_raw_temperature);1 C( A9 {) V* c1 T% m: u, P$ E; ?
                  }
4 s- G% ^7 f0 a/ S! {" |
( S0 N, }2 |) A2 T, Q7 e测量结果如图2所示:
+ D; c" H& l0 j7 s1 f 3-2.JPG 3 A* ^2 T, {9 Y0 `- c

: e, o! E3 {$ @- a1 ]8 Q( L9 V图2/ O1 V, v( d7 g2 G  d
有一些功能还没测试,要深入学习才有所得。9 _8 _7 I- i; z5 }) G0 {( J7 j/ p
收藏 评论4 发布时间:2024-8-5 20:44

举报

4个回答
y369369 回答时间:2024-10-18 09:41:05
这个实际功耗能做到多少啊0 @0 a' h* R7 q+ l
养乐多 回答时间: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 手机版