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

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

[复制链接]
jundao721 发布时间:2024-7-30 21:42
      根据AN5444应用笔记介绍,IIS3DWB是一款高性能MEMS三轴振动传感器,具有超宽带宽低噪声等特点,SPI标准接口输出。具体的介绍可参考AN5444应用笔记。本次先对该传感器有个初步的数据读取测试,关于滤波等后面学习时再添加。
; [& O2 {! [( \. d5 H     原理图关于该部分的说明,如图1所示:
6 j' y& Q9 m. x, d8 { 2-2.JPG
9 ^" r+ L, k9 s, y图1+ f( _( ]6 G4 c$ _! `8 O# j* o
8 J3 ~6 f: l' M
    先使用CubeMx建立工程,时钟等正常配置即可,因为要使用SPI通讯,所以引脚配置如图2:9 o6 k* l1 N) d! J& W" R+ x
2 O# l4 X9 R' T) |7 n9 r3 w
2-3.JPG ) I! s: Q" l& p3 Q# \
' e$ A( Q3 b- E
图2
* L7 L# a% N* r   SPI外设参数的基本配置如图3:
4 @) F6 |7 Y  O. x, h 2-4.JPG 6 X9 Y+ t- c4 o, p( l" ?! p
7 z+ e- T. t: M3 N! m
图3
% ~! H: S: n% G" D7 o8 u9 J  然后生成项目。在官方提供的文件中有IIS3DWB的驱动,4个文件,如图4所示:
0 I3 C; f( g% d* ~0 b2 r 2-5.JPG # x3 D9 N3 }8 E2 ]( |/ e' |! \

; B/ p5 V# V- l图4. a" Y, L& A" g: A: ]
  例程是参考官方github中提供的参考例程,修改了一下,增加了温度读取。初始化如下:
9 x2 B% ^1 t5 r. r$ x; G
  1. dev_ctx.write_reg = platform_write;, D3 a" d# f& r; S
  2. dev_ctx.read_reg = platform_read;' w* j1 p" H4 n; L
  3. dev_ctx.handle = &hspi3;5 E* d# q2 j2 P! ]! z
  4. - k/ ^8 \, [7 l5 b0 O, U/ f
  5. HAL_Delay (10);+ `2 H: @$ G! {  @9 i7 d0 `
  6. iis3dwb_device_id_get(&dev_ctx, &whoamI);% G6 u& P+ s: w6 q
  7. // 复位设备/ [9 d8 o! W5 |3 c6 C% l8 I( P
  8. iis3dwb_reset_set(&dev_ctx, PROPERTY_ENABLE);
    8 g  a1 _# U$ T& o) Z/ P3 d
  9. // 配置加速度计1 K7 Z  |7 A2 b* X! p
  10. iis3dwb_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);/ v, a" R& n. D8 d! c( N
  11. iis3dwb_xl_data_rate_set(&dev_ctx, IIS3DWB_XL_ODR_26k7Hz);
      h* o- r3 ~& Q& d  e- G' K
  12. iis3dwb_xl_full_scale_set(&dev_ctx, IIS3DWB_2g);
复制代码
: ~. D3 \; `- T9 x

4 N8 Z/ M  J6 C3 r" U# c* x! J. ]  对于加速度值和温度的读取程序如下:
$ c2 c/ I* }% m  B
  1.   // 读取加速度数据
    3 R- e& ]$ _8 J! d! D" R" {
  2.    , Q- t$ e" k7 q, |, J, M% g' L# U+ ^
  3.         iis3dwb_xl_flag_data_ready_get(&dev_ctx, &drdy);//读取状态值
    # q; e; A, g9 b  Z! B
  4.         if (drdy) {
    2 W. W& Y( w7 Z3 G) R, P8 g, t! v
  5.            0 y( j$ V2 j( C+ z
  6.             iis3dwb_acceleration_raw_get(&dev_ctx, data_raw);
    6 a; k- v% v4 n9 o
  7.             
    - N# I; R; b* i  \. N
  8.             acceleration_mg[0] = iis3dwb_from_fs2g_to_mg(data_raw[0]);
    + ]4 o, F" w% H- S+ n
  9.             acceleration_mg[1] = iis3dwb_from_fs2g_to_mg(data_raw[1]);
    2 G% A8 s9 I4 E+ M  V
  10.             acceleration_mg[2] = iis3dwb_from_fs2g_to_mg(data_raw[2]);
    2 k0 k# A6 |' O0 M/ t
  11.         }
    ' X7 \4 N' f9 a6 Q6 V& ]9 K2 e
  12.                 iis3dwb_read_reg (&dev_ctx ,IIS3DWB_OUT_TEMP_L ,temp_data ,2);0 f2 o9 o8 R. a
  13.                 temp_raw = (int16_t )((temp_data [1]<<8) | temp_data[0]);$ ^+ I7 U: i$ v% Y4 H2 q5 L3 @' Y* C
  14.                 temp_cel = temp_raw /256+25;1 m0 v: s5 ], x, x

  15. : E+ x2 Y0 y8 X
  16.         HAL_Delay(1000); // 每秒读取一次数据
复制代码
  1. ' z, D5 f" }6 _
复制代码

0 C8 \* I3 \: G8 j
8 u7 ]2 a) n* [, C% Z: u5 K  测试结果如图5所示:
- V+ H- z8 S6 S2 d/ w6 ^0 O 2-1.JPG 1 T! p" j0 u% Z  e  t' }% o

0 v- N. c' |9 U8 Q7 ~8 D9 {图5
; l+ t$ i( j: Y" B# z, FDevice ID和温度值是正确的,滤波,FIFO等功能的增加一边理解一边添加测试。
/ n7 E2 ]' }8 X# j4 n- Q6 a
% s0 E) Q( @# j8 j3 b3 y
9 V$ s# m1 J: g+ }9 y4 `/ n
收藏 评论5 发布时间:2024-7-30 21:42

举报

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

感谢分享

你也是双下巴 回答时间:2024-10-18 10:09:24
做温湿度显示意味着穿戴设备这个STWINKT1B是不是可以做
/ N+ v$ [+ \9 x! A3 \% [
养乐多 回答时间:2024-10-18 10:15:17
你也是双下巴 发表于 2024-10-18 10:09
/ `9 H& B- A9 E3 ]3 R6 ?做温湿度显示意味着穿戴设备这个STWINKT1B是不是可以做

. G( B. p# v1 \6 o1 m这个板子肯定可以吧,性能满强的
你也是双下巴 回答时间: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 手机版