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

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

[复制链接]
jundao721 发布时间:2024-7-30 21:42
      根据AN5444应用笔记介绍,IIS3DWB是一款高性能MEMS三轴振动传感器,具有超宽带宽低噪声等特点,SPI标准接口输出。具体的介绍可参考AN5444应用笔记。本次先对该传感器有个初步的数据读取测试,关于滤波等后面学习时再添加。8 j. E: E# y1 F# T
     原理图关于该部分的说明,如图1所示:
% _; D6 ]) p% ?4 d+ A" E4 p5 k 2-2.JPG
; M  }) s9 z3 g0 X. s# ^; k图15 h( X! J, g% V1 w5 k3 \
1 K( n" p2 _& E+ V* P0 E
    先使用CubeMx建立工程,时钟等正常配置即可,因为要使用SPI通讯,所以引脚配置如图2:4 r5 ?4 T$ z+ m" |. U  @: v9 K$ F
) k4 m/ @1 G& a" N$ J2 y9 g
2-3.JPG 9 ^* S* @) v" z: e& T$ b$ D1 I
4 _" l* `7 `, h( e4 H- `
图27 t8 r& Q" t. Y9 x, |1 v
   SPI外设参数的基本配置如图3:
. {4 ]8 @& C" F7 ^. h( ]7 g4 J 2-4.JPG
  r7 ~, X& [: }6 O; d; P
8 Y. H* [' @9 m2 u
图3. e* O4 a; P- o+ J1 ]" \
  然后生成项目。在官方提供的文件中有IIS3DWB的驱动,4个文件,如图4所示:) ^( U5 `( y7 w
2-5.JPG
) G; O. b- V/ }" r4 K

, o6 `" K( V& X3 k4 D; p6 y图4
1 h" o: s. x6 _1 H  例程是参考官方github中提供的参考例程,修改了一下,增加了温度读取。初始化如下:$ X" Z' \( {$ Z9 g( S0 N6 P
  1. dev_ctx.write_reg = platform_write;: ]! ?9 g. K3 P
  2. dev_ctx.read_reg = platform_read;. ^% _( N, b% p2 O$ a
  3. dev_ctx.handle = &hspi3;/ E8 X7 [" ~* k; a8 T4 R

  4. ; M% f6 a: Q+ D2 ~. |  \
  5. HAL_Delay (10);
    9 B; I; z1 C+ V/ W# B, ~8 L- C
  6. iis3dwb_device_id_get(&dev_ctx, &whoamI);
      X3 b1 Z9 p; g# W% p! A/ R
  7. // 复位设备
    $ {! g, o9 D; w( h
  8. iis3dwb_reset_set(&dev_ctx, PROPERTY_ENABLE);
    * _# g+ C. h% @4 u
  9. // 配置加速度计
    " o- {  E, d: w9 h+ ^9 G8 J
  10. iis3dwb_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);1 d2 B4 [2 {+ V+ F* C1 n1 M
  11. iis3dwb_xl_data_rate_set(&dev_ctx, IIS3DWB_XL_ODR_26k7Hz);
    & b9 p2 j0 T# f! C2 i# q& N" `8 y
  12. iis3dwb_xl_full_scale_set(&dev_ctx, IIS3DWB_2g);
复制代码
7 s7 E6 }  V8 w! ~" @

, ]! s6 @) D# [, w; g, x  对于加速度值和温度的读取程序如下:
- e0 F7 e1 N, A# Z
  1.   // 读取加速度数据2 t" G3 J" u5 p0 u
  2.    ' j( b8 p) k6 G8 m* S" R5 d
  3.         iis3dwb_xl_flag_data_ready_get(&dev_ctx, &drdy);//读取状态值5 k1 _7 ?" m' n2 X7 m9 C- a
  4.         if (drdy) {
    $ G, x+ Y' {3 L& @% s
  5.            
    ) _) {! |9 {& F" ]# y
  6.             iis3dwb_acceleration_raw_get(&dev_ctx, data_raw);8 z9 y, Z. D1 M" h
  7.             
    , c# @; B+ @" Q- W: h
  8.             acceleration_mg[0] = iis3dwb_from_fs2g_to_mg(data_raw[0]);
    - ~6 q3 ?* K$ @* ^
  9.             acceleration_mg[1] = iis3dwb_from_fs2g_to_mg(data_raw[1]);
    " A3 d& O2 P  I6 z  m3 }* S
  10.             acceleration_mg[2] = iis3dwb_from_fs2g_to_mg(data_raw[2]);
      q. f2 M3 _9 \
  11.         }1 o8 U0 u! z! R4 P
  12.                 iis3dwb_read_reg (&dev_ctx ,IIS3DWB_OUT_TEMP_L ,temp_data ,2);- k* O# e8 r/ T7 t/ l, _, g
  13.                 temp_raw = (int16_t )((temp_data [1]<<8) | temp_data[0]);
    8 M: i. V! n; |0 r8 F6 ^3 I
  14.                 temp_cel = temp_raw /256+25;4 ^: h# |; ?2 r3 v( F2 ~

  15. # `4 n; p. x' C
  16.         HAL_Delay(1000); // 每秒读取一次数据
复制代码

  1. ; s: f0 v5 p% b" }& Y( q9 Z
复制代码

- k( }  I+ d% M$ p5 ~$ _& Q/ q$ [
3 ?6 E- s5 ^, v' F; H% X7 b  测试结果如图5所示:
" d6 i% V# I% _0 W' n. I! C 2-1.JPG $ Z1 B+ E  X; b& [% \
* X8 m( Z0 \+ ]. k1 {
图5
- G9 I" E* a# F8 r  I  TDevice ID和温度值是正确的,滤波,FIFO等功能的增加一边理解一边添加测试。. j. k% F% t# _  ~
1 `, N# d, Q1 y7 `* R

: L* b5 c3 {( |
收藏 评论5 发布时间:2024-7-30 21:42

举报

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

感谢分享

你也是双下巴 回答时间:2024-10-18 10:09:24
做温湿度显示意味着穿戴设备这个STWINKT1B是不是可以做
+ e/ Z  ~. S7 S2 B5 W, P* C
养乐多 回答时间:2024-10-18 10:15:17
你也是双下巴 发表于 2024-10-18 10:09  L- k" C! |/ q8 Y  }, X# z7 a" l
做温湿度显示意味着穿戴设备这个STWINKT1B是不是可以做
/ N0 j: P5 [( A" }
这个板子肯定可以吧,性能满强的
你也是双下巴 回答时间: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 手机版