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

【年中粉丝节】+SHT20传感器

[复制链接]
liuxingkeji 发布时间:2021-6-7 23:09
【年中粉丝节】+SHT20传感器
今天收到年中粉丝节的活动,看了看,对不起了日天兄,我得水个好几篇文章了。既然是分享ST开发板与传感器的文章。今天先来个SHT20温湿度传感器。
先贴下参数图。
1.png
首先通信接口是IIC总线方式。
2.png
这张是性能参数。可以两个湿度传感器精度可以达到12bit分辨率,温度是14bit分辨率。
3.png
到这里我们需要看到其发送数据的时序,逻辑,同时知道需要知道寄存器的地址。
4.png
在程序中对应。虽然地址配置的是0x40,其实是在发数据的适合地址进行了左移一位的操作。
  1. float SHT2x_MeasureHM(unsigned char cmd, unsigned short *pMeasurand)
    ; y, W; Q4 V! x' h- \  W  k- r# Y

  2. ! ~, a6 h$ q) Y8 C
  3. {  c% P' b( A* l, j

  4. 5 h$ T* a* v. B" Z' C$ |# r
  5.       1 i5 R  R0 o! ~; e) j. c" j- d

  6. $ p5 E1 t$ `; y$ b
  7.     char  checksum = 0;  //checksum
    / s; E, H, T% v# S* i; C
  8. 0 \; X+ t) M8 q- d5 s: k- f
  9.     char  data[2];    //data array for checksum verification* z! Y+ c" I* |1 U& h

  10. , y. k9 m: B8 [" G* y/ n+ k
  11.        unsigned char addr = 0;
    * S& ?4 s8 Q2 ], v9 q' M
  12. ' _- \4 i9 F  R& d- Y* w( X0 ?
  13.     unsigned short tmp = 0;
    " e2 ~9 x& t, Q- r+ \% F

  14. 1 u- _( {# G7 _5 d* u  Q  Q
  15.     float t = 0;
    4 D5 G6 X3 O) q

  16. ) N* ~# B. }# s' |2 d4 E
  17.       
    ! t9 V3 ^" [6 d6 q) ^" e# K

  18. 6 R- v$ n& _4 X! F2 Z1 D3 c
  19.     addr = SHT20_ADDRESS << 1;7 Q; ?# W. x, q7 E
  20. # R4 y1 N  i" P9 m8 [
  21.       & f# T# H5 J+ r( D

  22. 5 P2 m$ F! u* @1 `- G
  23.        IIC_Start();2 X/ X( e+ F: k7 U# [* Q( G3 |
  24. 2 I' Y( C3 B! c2 N5 Y8 Y7 x! T
  25.       
    , L# N' m- R( l  a. [! U
  26. ) _# j% F$ L# `+ s  W6 M
  27.        IIC_SendByte(addr);; @0 V2 v# o: a5 B0 n

  28. " a: s2 ~5 J  ^( ]
  29.        if(IIC_WaitAck(50000)) //等待应答
    $ J$ T5 x- B5 U# X1 W
  30. 4 L& f" c4 B0 Y3 o* W- f1 V; R
  31.               return 0.0;% |% T9 D6 b* n

  32. & Q+ Z( K/ B2 [$ C; K. K
  33.       
    5 l9 b9 _4 ^. C) x7 r; W* @

  34. * q3 Z" R+ o( T  b& {
  35.        IIC_SendByte(cmd);2 i# g# d7 M# U

  36. + u. p5 {( u+ p7 _
  37.        if(IIC_WaitAck(50000)) //等待应答" M/ L5 x( E  `' R, p* U) p  L

  38. ; H7 }' p$ C" G  j% L# t
  39.               return 0.0;
    ) q) v" d& D9 n1 @( X+ a" q
  40. - @  V. [& `% M/ O! |9 s" [. a+ S" p
  41.       ; |2 k& ]( g& Y9 I: l. F
  42. ) o5 `, ]% D  l' W- C
  43.        IIC_Start();
    8 n$ r, F/ Y  X8 m! `# m4 p9 h( s7 T

  44. + p/ ~3 n% l1 @% }
  45.       # G8 V0 h+ s0 a) H

  46. & r: R, ^; D( H5 p% T" I3 g' L
  47.        IIC_SendByte(addr + 1);
    1 L1 D, y, g& @1 b7 ]5 n! G4 m
  48. ; m8 Y; Q, ^# z
  49.        while(IIC_WaitAck(50000)) //等待应答, k6 ?. Q: l; R: m7 }! F* M
  50. 4 x! g6 V( b7 ]$ J4 s$ x
  51.        {
    ! M4 D9 g: X4 ^9 t1 A7 k4 N0 b6 E% u
  52. ' y. Q6 {! \' ~9 h: `& \
  53.               IIC_Start();
    % c  j! b3 C# e9 W3 T, @* g3 Q6 u$ _

  54. ' S6 @4 r' a, z2 f+ C5 m5 X
  55.               IIC_SendByte(addr + 1);$ i9 Y. i' @8 M! M
  56. , {% j, ?: A6 w& S% J3 q1 l) h4 _
  57.        }+ i1 f0 q& |5 a" y2 A- o0 U

  58. ! p, d" b9 w! z( @% b/ ?/ s- }
  59.       
    ) }" r3 ~3 l  L1 Q
  60. : t: [/ M" {4 G+ ^3 l; x8 x
  61.        DelayXms(70);, ]7 r" T+ C$ \

  62. + i$ a- H6 z3 p4 e. S# `7 R
  63.       
    2 S% Z# C% A6 J5 G; D' M
  64. 9 g& D# l5 X+ o, }3 k9 h; p
  65.        data[0] = IIC_RecvByte();( w, q8 b, j) b1 W7 X! d0 p
  66. ! H; Z' z' V4 r
  67.        IIC_Ack();4 u6 P1 c- G5 a
  68. % n2 u; M  z) ?3 H1 S% i
  69.        data[1] = IIC_RecvByte();/ u  ]- n, A) u8 p8 s

  70. 1 c# ]8 a7 O: [, ?6 I) t" O
  71.        IIC_Ack();! x$ W8 c$ f+ H8 R9 e& Q2 d

  72. ' u* m. f. D3 ~; T8 d4 y
  73.       
    1 }0 l' i* U& j5 \
  74. 5 Z) v8 r) n1 V
  75.        checksum = IIC_RecvByte();0 z7 M- W% _' g) z' F
  76. + V+ g  x" I' B+ W3 L5 H
  77.        IIC_NAck();
    / S8 z' G1 f9 T

  78. $ H8 b0 O6 R+ m6 @4 y9 j
  79.       
    : s% x% v" w4 b  L/ c/ p

  80. 8 E+ \7 Q  D5 o
  81.        IIC_Stop();* H/ m" Z4 ?2 m5 t$ z
  82. 9 k6 l9 f# b$ E
  83.       1 T2 x& q6 r0 r) Y& y0 d

  84. 2 E; `) N" m6 I: i5 u/ {8 X
  85.        SHT2x_CheckCrc(data, 2, checksum);
    5 J3 @* G! _- _* g) }* P) o

  86.   N/ q6 F7 s. c# S3 N
  87.     tmp = (data[0] << 8) + data[1];5 Z" D9 ], A1 z2 K, m4 k$ r: y( L

  88. 0 G5 h+ t" g) V* F) f
  89.     if(cmd == SHT20_Measurement_T_HM)
    3 ]& i# P7 h% x+ W

  90. 3 k  ]1 d  D7 P% C
  91.     {
    2 I, D; }/ _/ G9 s

  92. 4 }+ d5 x/ u3 m' I
  93.         t = SHT2x_CalcTemperatureC(tmp);
    : ~/ `1 E$ A3 f* ]5 J: P8 Q" D
  94. $ D8 S' X! M8 w- I1 n# I' x
  95.     }
    4 E& V/ q! m6 @8 w& ]' k, q0 X

  96. ! j& ^9 m& x1 E  ]7 Z
  97.     else
    - O! M" D- c' }8 X0 h

  98. & z$ m. N7 Y( t( u
  99.     {0 j8 m' z+ Z' A6 ^$ m1 p8 d1 m

  100. 6 J; E1 S# q; d) ]1 U$ Q9 h3 @& M
  101.         t = SHT2x_CalcRH(tmp);
    # t$ j# x; n. S$ Y) H' h1 q

  102. 1 i$ `9 o. M1 l6 i5 i, S- t
  103.     }
    * @  I2 q% F4 @8 p7 k( N

  104. % A& [( q4 K$ O
  105.       / ^  H. w5 }! L- u8 w$ R; e" x

  106. + I5 N& a6 w! q' {; j/ G. {
  107.     if(pMeasurand)! d; ?. g4 A, h; N: M4 k) L' f8 y
  108. - k6 ^. |8 W, }& K0 P
  109.     {+ J, ?7 h; c" w) ?4 f; ^6 G4 Z
  110. ' F) J# m$ J3 f! N
  111.         *pMeasurand = (unsigned short)t;
    9 q* y0 P3 T, _" K* k' Q/ Q, D
  112. ; ?, m$ \" E" G1 s$ G/ p) H% {
  113.     }
      ]% N* c6 m* K7 m2 X
  114. ! v; g) D+ W4 i& W" R5 \" q9 A& `3 ]8 a
  115.       $ S/ i5 a9 ]# Z: Y6 K0 p9 j2 E$ V
  116.   H0 ~2 y2 t* z! Q0 y  b
  117.     return t;- `+ u3 L6 V& \" @/ u- P

  118. 2 O0 r+ J* [% n$ U5 ]
  119.       
      S1 v0 S% J2 j6 t' r
  120. 3 c, {3 g% f/ T9 s" B5 B: p
  121. }
复制代码

" H6 g  t0 M* w; p
上面就是对应的读取温湿度寄存器里面的值。
5.png
最后读取出来的需要进行转换。
6.png
7.png
如上图。
8.png
最终串口输出数据。
9.png
单片机使用的是STM32F103VET6。板子上还有其他传感器明天接着水。

8 j  s$ M7 M, a, ?
赞 收藏 评论2 发布时间:2021-6-7 23:09

举报

2个回答
STMCU-管管 回答时间:2021-6-8 09:28:26
响应快啊,给力0 I  F5 x3 Z" J$ M" d2 s: H
liuxingkeji 回答时间:2021-6-8 09:51:43
STMCU-管管 发表于 2021-6-8 09:28  T) `1 t, l! N) @
响应快啊,给力

$ \, T3 {/ o) c% c0 R* c9 U5 h+ j5 I一晚给你水一篇, V; M) a% n2 {8 e+ t0 Z

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版