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

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

[复制链接]
jundao721 发布时间:2024-8-5 20:44
      这两天测试了一下板载的IIS2DH加速度传感器,这是一款低功耗的3轴加速度计,低功耗时能达到2uA,在工业领域广泛应用。从原理图上看,也是连接了SPI3接口,如图1所示:
1 a$ D& f7 z; |/ J+ h: Y, M: H7 t
) u' f6 H3 K: c3 n 3-1.JPG 9 Z1 J7 t- @" z1 q/ M% \4 W4 w
; R1 w$ U+ q) I
图1) A* k9 Q7 f3 r) `1 `9 q2 p6 |0 [
      除了INT2和CS引脚需要重新配置,其他的配置和上一篇是相同的,在CubeMx中很方便重新建立工程文件。想着测试应该是很顺利的,但是能读Device ID,不能读取数据,一度不知道什么原因。隔了一天发现,是CS引脚在程序中搞错了,很多问题往往都是粗心大意导致的。来看软件,初始定义还是参考官方的例程,库也是使用官方的,这样测试比较节省时间。
: u4 S: b  p, _+ l6 @$ z8 j初始化如下:
2 o) R8 {% J* _% o% `  ~* A" i! y
  1. dev_ctx .write_reg = platform_write ;% w# o# s" ?2 m& F# b% r8 b
  2.         dev_ctx  .read_reg = platform_read ;
    . t! ?  W/ D& P" B
  3.         dev_ctx  .handle = &hspi3 ;* O9 \8 ?& A1 i
  4.         HAL_Delay(10);1 g. V6 z2 ]6 w/ L0 L4 ?0 @2 D
  5.        
    $ V" E+ o" W( b" J) e& L+ y% E+ C
  6. //        IIS2DH_ReadID(&Obj ,&whoamI);
    : l9 G, x) e/ I, P
  7. iis2dh_device_id_get(&dev_ctx, &whoamI);
    & ]( ?' x. z6 I6 w+ a3 x
  8. //        6 w9 m# g+ a# V( g0 ]
  9. //        IIS2DH_Init(&Obj);" V5 q' e0 [# h$ f, i# J" O

  10. 1 o7 t' {: q8 C5 J5 X8 B
  11.         iis2dh_block_data_update_set(&dev_ctx , PROPERTY_ENABLE);
    3 s3 d# H8 F3 I
  12.         /* Set Output Data Rate to 1Hz */
    % d- C% A1 ?3 t0 q3 T
  13.   iis2dh_data_rate_set(&dev_ctx , IIS2DH_ODR_1Hz);
    6 }4 `  I1 `9 k' W  e6 Y# @' d
  14.   /* Set full scale to 2g */
    * s" U6 {: T& B- W" \2 t1 z$ {
  15.   iis2dh_full_scale_set(&dev_ctx , IIS2DH_2g);
    + P+ ~$ s1 r1 \
  16. //  /* Enable temperature sensor */$ X, K- g% T$ F- i$ r! ]4 A
  17.   iis2dh_temperature_meas_set(&dev_ctx, IIS2DH_TEMP_ENABLE);, z3 g  X5 g: ?$ X7 a
  18. //  /* Set device in continuous mode with 12 bit resol. */
    , [! Y- ?1 b, J' ], l" l4 ^$ i/ G
  19.   iis2dh_operating_mode_set(&dev_ctx , IIS2DH_HR_12bit);
复制代码

1 n  k$ Q& c, N8 B
) |9 K4 J9 ]! a9 t  r' t8 v, n; d读取加速度数据如下:3 D, b5 e6 |0 i  f6 h5 }5 c6 x5 H4 }
  1. iis2dh_xl_data_ready_get(&dev_ctx , &ddbyte );5 \9 D' m& e2 ^* A# [" j0 c1 L
  2.          if(ddbyte )
    3 |2 q% K) d9 u4 q# q! f  I5 m7 E# u8 L
  3.          {
    , W5 |. n* W* b
  4.                  /* Read accelerometer data */
    ( o, w- W" i; N8 q% U* m% \
  5.       memset(data_raw_acceleration, 0x00, 3 * sizeof(int16_t));- B. d2 k, [5 n& n  r+ w
  6.                  
    ' N/ C7 N( t% E7 A( Q9 V
  7.       iis2dh_acceleration_raw_get(&dev_ctx , data_raw_acceleration);
    ' B' F- \$ e$ u8 g
  8.                  
    6 B1 |" r0 Q5 `9 \
  9.       acceleration_mg[0] =iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[0]);
    6 L* `* \" h* P' q/ y  d3 `
  10.                  
    . @- K* N! m# @$ Q/ t
  11.       acceleration_mg[1] =iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[1]);
    3 c7 [' P" m% ^3 F0 e! F; W
  12.                  " X, v4 K# ~0 \: K4 R: H1 a" O7 w
  13.       acceleration_mg[2] = iis2dh_from_fs2_hr_to_mg(data_raw_acceleration[2]);1 W8 J+ H; Y; P; e: ~4 f
  14.          }
复制代码
# |7 L: C, ]; j9 d  z
+ i  ]' D6 T( y5 i2 n
读取温度数据如下:( R+ m+ A/ f+ ?

# q/ Z( S/ w1 uiis2dh_temp_data_ready_get(&dev_ctx , &ddbyte );
/ |  `, N* l. H9 V" L0 u0 f; ~( G5 ]2 t. V
    if (ddbyte)
: N* w2 A% U$ M# I, a9 A                        {- N  j& h1 J4 W9 w
      /* Read temperature data */
) _' y/ b0 V1 \      memset(&data_raw_temperature, 0x00, sizeof(int16_t));3 A/ x6 d. S! `
      iis2dh_temperature_raw_get(&dev_ctx, &data_raw_temperature);
1 }, `# ?9 w) B" o) @      temperature_degC =iis2dh_from_lsb_hr_to_celsius(data_raw_temperature);
) E3 b9 W# N# i) A3 g9 A: M& v- R; e* J                  }
  Q/ U$ q6 T0 m1 g- P9 m5 x: [9 Y& J- Q9 H4 Q
测量结果如图2所示:6 f$ n0 z/ C3 g: Y
3-2.JPG / }4 N/ k! q1 t, u; p2 V
4 H0 f, N# |( b$ i& C
图2+ f: N& @1 V$ T" c$ B$ b  U
有一些功能还没测试,要深入学习才有所得。) J+ \) v4 n0 g: G. Q" ]
收藏 评论4 发布时间:2024-8-5 20:44

举报

4个回答
y369369 回答时间:2024-10-18 09:41:05
这个实际功耗能做到多少啊
4 V) w6 d7 f7 y7 [
养乐多 回答时间: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 手机版