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

【STWINKT1B评测】2.初步测试IIS3DWB振动传感器

[复制链接]
jundao721 发布时间:2024-7-30 21:42
      根据AN5444应用笔记介绍,IIS3DWB是一款高性能MEMS三轴振动传感器,具有超宽带宽低噪声等特点,SPI标准接口输出。具体的介绍可参考AN5444应用笔记。本次先对该传感器有个初步的数据读取测试,关于滤波等后面学习时再添加。
& C+ v6 U9 y5 p& O7 g     原理图关于该部分的说明,如图1所示:
6 v( M8 d2 k, j# p 2-2.JPG
; N% G. @& F( h$ ?7 U2 M图1
/ \( b% c2 W- f+ }; D" G
8 W" d+ Z. t# I. l    先使用CubeMx建立工程,时钟等正常配置即可,因为要使用SPI通讯,所以引脚配置如图2:
# `3 K& n4 l& K) ]. g& X! ]) A8 ^' _2 M+ v9 l! x( j# A3 l
2-3.JPG
/ Y: d+ i0 ]5 s; i* ~. _; [2 C

8 X) r) e1 q1 {- M图2; c  Z# n% f4 \4 Z% ~
   SPI外设参数的基本配置如图3:
! }7 [. f  z5 L8 x6 | 2-4.JPG
% W+ K  u5 f, L: K( E

9 `7 T& O6 X( G图34 _- \: ?+ L3 s" P# i
  然后生成项目。在官方提供的文件中有IIS3DWB的驱动,4个文件,如图4所示:+ H6 m8 w0 E4 l$ m" L4 S- b
2-5.JPG ; k; Y2 |/ @4 c* _

3 l# i2 I0 x/ j" u8 v: M图4
7 u3 F9 k# e+ Y2 h% H2 S/ |! K  例程是参考官方github中提供的参考例程,修改了一下,增加了温度读取。初始化如下:! T( j+ c+ j$ n' k$ ?& C. A
  1. dev_ctx.write_reg = platform_write;
    ) d" q/ E/ c- r
  2. dev_ctx.read_reg = platform_read;
    # y& f+ z+ ~8 a6 X8 C8 K8 T/ G. Z: r
  3. dev_ctx.handle = &hspi3;/ d4 i+ l/ i% J
  4. 3 W( p8 J' X0 Z
  5. HAL_Delay (10);9 a, M5 @* u6 F6 J; m" D. d3 [
  6. iis3dwb_device_id_get(&dev_ctx, &whoamI);
    4 u' j& v( Y& ^# W  |
  7. // 复位设备
    / G# ]) u3 I4 n5 u
  8. iis3dwb_reset_set(&dev_ctx, PROPERTY_ENABLE);
    ! t7 z+ o  Q8 e3 Q; O- O
  9. // 配置加速度计
    $ D* z& p! r. i; r& }
  10. iis3dwb_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);
    6 t* ~5 }9 D& ~+ V. L
  11. iis3dwb_xl_data_rate_set(&dev_ctx, IIS3DWB_XL_ODR_26k7Hz);
    6 D7 b( I8 t& Y: D/ s( W
  12. iis3dwb_xl_full_scale_set(&dev_ctx, IIS3DWB_2g);
复制代码

7 y' t9 @# P) Q/ k- O; B/ v" f. _: n  h0 M: n
  对于加速度值和温度的读取程序如下:
! b) F7 b8 s2 B
  1.   // 读取加速度数据* C: d& ?/ l4 k  |% C
  2.    0 x) B/ u, O$ t
  3.         iis3dwb_xl_flag_data_ready_get(&dev_ctx, &drdy);//读取状态值- N3 a" h. O9 V, h! O, a( T, A/ E
  4.         if (drdy) {
    ' w) m1 {! d- \5 ?0 L8 h' [! [, F
  5.            ) k# a% ~$ l0 r
  6.             iis3dwb_acceleration_raw_get(&dev_ctx, data_raw);7 Z) [/ q$ U/ O* _* C
  7.             
    ' F/ N  {& ?- ?5 I
  8.             acceleration_mg[0] = iis3dwb_from_fs2g_to_mg(data_raw[0]);
    8 X/ X  `4 V1 B" h
  9.             acceleration_mg[1] = iis3dwb_from_fs2g_to_mg(data_raw[1]);" S0 c, p0 L" x2 t1 H2 @: {/ O
  10.             acceleration_mg[2] = iis3dwb_from_fs2g_to_mg(data_raw[2]);
    % D' u! g  D6 z$ N/ |
  11.         }
    ) \2 v* j5 ]* v* X: }- }& q# ~
  12.                 iis3dwb_read_reg (&dev_ctx ,IIS3DWB_OUT_TEMP_L ,temp_data ,2);
    % i+ R) x# u/ `+ u, t
  13.                 temp_raw = (int16_t )((temp_data [1]<<8) | temp_data[0]);
    4 x8 T2 i1 K4 ~% ?
  14.                 temp_cel = temp_raw /256+25;
    ( ^/ u7 T; Y2 W+ P% @6 k, J- e  ~
  15. 5 D' z+ M9 m# W( e
  16.         HAL_Delay(1000); // 每秒读取一次数据
复制代码

  1. 1 Q( T6 Z4 L3 T9 k. ]% C
复制代码

$ X- D' \& e! L9 i2 P  _+ P  Y, ]: {( T7 s* h7 K/ s
  测试结果如图5所示:
; R4 W( L8 N4 z& J% I9 m3 P. b 2-1.JPG
+ a0 ~2 o' f% }) N# q% o+ c

( |8 n5 v7 S) V! U  `7 Z0 }图5+ t$ g! S, I; e  R2 s& s
Device ID和温度值是正确的,滤波,FIFO等功能的增加一边理解一边添加测试。
0 \8 }8 x6 c& E. {: |5 w6 W* H$ n$ n, u: M. ]. l/ u/ I: s; Y

) Q' [( f5 S& j9 ?, z, c
收藏 评论5 发布时间:2024-7-30 21:42

举报

5个回答
STMCU-管管 回答时间:2024-10-18 09:39:30

感谢分享

你也是双下巴 回答时间:2024-10-18 10:09:24
做温湿度显示意味着穿戴设备这个STWINKT1B是不是可以做' r+ ?* w/ D- r% S0 `5 R7 k& r1 n8 x
养乐多 回答时间:2024-10-18 10:15:17
你也是双下巴 发表于 2024-10-18 10:09
% t7 X: y# H7 g7 {做温湿度显示意味着穿戴设备这个STWINKT1B是不是可以做

) X! w+ x& Q1 C; P这个板子肯定可以吧,性能满强的
你也是双下巴 回答时间:2024-10-18 10:15:59

养乐多 发表于 2024-10-18 10:15
这个板子肯定可以吧,性能满强的

确实,大佬

ghost110 回答时间:2024-10-18 10:36:38

感谢分享,学习

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版