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

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

[复制链接]
jundao721 发布时间:2024-7-30 21:42
      根据AN5444应用笔记介绍,IIS3DWB是一款高性能MEMS三轴振动传感器,具有超宽带宽低噪声等特点,SPI标准接口输出。具体的介绍可参考AN5444应用笔记。本次先对该传感器有个初步的数据读取测试,关于滤波等后面学习时再添加。1 _4 o  }* e0 \% f6 V6 V% j5 Z
     原理图关于该部分的说明,如图1所示:
4 s8 u2 C. u2 U 2-2.JPG 0 C6 V7 ]1 B) {/ Z2 a
图1
. i7 _) p% I, T: W8 i4 k1 W% i
- _" w& Q1 Z  D$ j) r% T    先使用CubeMx建立工程,时钟等正常配置即可,因为要使用SPI通讯,所以引脚配置如图2:8 l1 h' H3 e/ @; E

& t9 }4 Y  W- ~1 Y3 d; E 2-3.JPG
6 Q+ k2 }+ d4 }, N' d

: @7 Y- O9 j4 T! I图2% I" W8 D" d1 R4 j! m3 {: z
   SPI外设参数的基本配置如图3:
' X; R  f8 d5 d1 L& W: z 2-4.JPG
" c1 {; C, Z2 o: }

' S- s, Z/ v# w) Y% ^- |8 }8 E图3- f7 m6 E& {) p) I
  然后生成项目。在官方提供的文件中有IIS3DWB的驱动,4个文件,如图4所示:9 ?5 O. i) K. v: D! i
2-5.JPG 0 G1 r- O2 ^6 N0 e4 P! u

4 Z1 L/ g$ ?" l8 n& u( g6 G/ ~4 e$ x* l图41 F$ }1 i6 o4 H
  例程是参考官方github中提供的参考例程,修改了一下,增加了温度读取。初始化如下:% s; p+ Y5 x8 T1 K
  1. dev_ctx.write_reg = platform_write;0 j5 i4 q* Y. n! g; i8 i& E3 a
  2. dev_ctx.read_reg = platform_read;
    ' Y) v3 B" _1 V1 Y# g
  3. dev_ctx.handle = &hspi3;
    & m" y- U6 I% u) U8 h* H
  4. 4 V$ B& r3 A" {7 x; s
  5. HAL_Delay (10);
    ( T* ~6 ~! E  C* b% N1 l* W, p
  6. iis3dwb_device_id_get(&dev_ctx, &whoamI);1 w! b3 T" A! v! h: a- _
  7. // 复位设备
    5 a1 s3 }$ q& z
  8. iis3dwb_reset_set(&dev_ctx, PROPERTY_ENABLE);
    8 G- `5 ~0 d7 w4 P2 h6 f+ d: O+ u
  9. // 配置加速度计$ D2 ^  T( K- b& m4 y
  10. iis3dwb_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);8 [5 u9 ]$ l- W/ L3 Z. E
  11. iis3dwb_xl_data_rate_set(&dev_ctx, IIS3DWB_XL_ODR_26k7Hz);
    , W7 `4 p8 A1 [: m
  12. iis3dwb_xl_full_scale_set(&dev_ctx, IIS3DWB_2g);
复制代码

5 _0 |- [( {5 R5 {2 U2 x$ @$ d8 v1 E8 \+ r. c
  对于加速度值和温度的读取程序如下:
% c' L/ z! y  W' B7 i1 d
  1.   // 读取加速度数据$ o* m6 t$ G7 u1 k
  2.    # P: O# p% q& |) p$ h
  3.         iis3dwb_xl_flag_data_ready_get(&dev_ctx, &drdy);//读取状态值
    # @) l5 n' w9 h0 j' D
  4.         if (drdy) {& O' f1 G+ G1 i- h4 T
  5.            & S& t: o* {" a/ T" |
  6.             iis3dwb_acceleration_raw_get(&dev_ctx, data_raw);
    4 ]2 B) j# }; o. D( H& P8 S
  7.             
    + W& w+ s- F: S9 c, `6 x
  8.             acceleration_mg[0] = iis3dwb_from_fs2g_to_mg(data_raw[0]);
    & q. }# q& v1 g0 z& J6 n% O, D
  9.             acceleration_mg[1] = iis3dwb_from_fs2g_to_mg(data_raw[1]);) }$ n) R, j7 U8 ]# v. H" J
  10.             acceleration_mg[2] = iis3dwb_from_fs2g_to_mg(data_raw[2]);
    " J7 T' ~' w5 R+ H8 h
  11.         }; x. X; n4 p5 T- m. k6 ~
  12.                 iis3dwb_read_reg (&dev_ctx ,IIS3DWB_OUT_TEMP_L ,temp_data ,2);1 I! d9 _8 ]' Y5 H& u
  13.                 temp_raw = (int16_t )((temp_data [1]<<8) | temp_data[0]);
    1 Z6 y7 I, n; e1 {) {3 W
  14.                 temp_cel = temp_raw /256+25;
    0 |+ L6 f, Q; p
  15. 6 L" j& b- L# n0 x
  16.         HAL_Delay(1000); // 每秒读取一次数据
复制代码

  1. ) v3 o# c, t) n% L$ h+ X
复制代码
; x. c5 L* g5 \
/ V0 N+ Q: Q/ Q/ V' ?; J, l
  测试结果如图5所示:
. C; u. I2 v, ~& f0 ? 2-1.JPG ! N* g5 o4 ]; b, M

3 n* e$ e3 A- o0 c2 o& ]2 y2 o图5( w0 z6 R7 q2 I5 f
Device ID和温度值是正确的,滤波,FIFO等功能的增加一边理解一边添加测试。
; L) `9 [6 Q; {: ?+ v& P$ p, i5 M7 ]4 Z9 D/ |4 d

' Y! t5 T' h2 S* s# w9 C( Y
收藏 评论6 发布时间:2024-7-30 21:42

举报

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

感谢分享

你也是双下巴 回答时间:2024-10-18 10:09:24
做温湿度显示意味着穿戴设备这个STWINKT1B是不是可以做8 v! ~! \. t4 |  e% i9 i; C
养乐多 回答时间:2024-10-18 10:15:17
你也是双下巴 发表于 2024-10-18 10:09
2 C3 K1 a3 M. ?8 a. \; {做温湿度显示意味着穿戴设备这个STWINKT1B是不是可以做
. Z. s- f5 N. ?1 J) P. U7 O
这个板子肯定可以吧,性能满强的
你也是双下巴 回答时间:2024-10-18 10:15:59

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

确实,大佬

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

感谢分享,学习

Minerva_ 回答时间:前天 21:28

你好博主,麻烦问一下您配置这个振动传感器的时候是怎么配置的呢,我看官方的应用笔记上面说明片选在拉低的时候才能用spi,但我配置之后仍然无法读到数据(可以的话能麻烦您分享一下源码我学习一下吗,谢谢您😄 )

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版