DHL11
; i: u" g$ x& t5 y; F3 J1 J1.引脚
- ^. C' w4 S# }4 B% x2 q& Y( ^( LPA7->接HDQ
, p- S) L7 R) z) ?" s% h3 _# s0 @# e9 A3 s% {0 K( }
2.Cubemx实现的配置
( }7 f+ F+ s1 M: |9 k
& K' p+ q4 ^+ K" _9 ^- r) u O2 |9 T% R
# n8 p% c X; ^- h* C& Z- w
6 a! b% e4 `) F! D9 k7 a3.生成工程
) s& o$ U9 N+ n2 H2 V0 _1.DHT11读取函数5 M& N5 p, |; b- d6 I$ A! K6 \! R
- uint8_t DHT11_Read_Data(uint8_t *temp, uint8_t *humi)
5 }6 R; X4 {: i4 I - {
2 n, c. G/ t. r/ l9 v! j" T5 \) K - uint8_t buf[5];
8 a- J3 u% o1 G - uint8_t i;! K) P+ D, v' W8 i P
- DHT11_Rst();
; \0 ^6 w$ g$ a/ C - if(DHT11_Check() == 0)
" g7 ~9 g( O% q0 r; b" x% U - {
% _* F0 i5 e; q6 w - for(i = 0; i < 5; i++)
! M6 r# V: A8 H2 |& y& Y - {( P4 ~) Y* S8 F) B& ^- J( b: ]
- buf<i> = DHT11_Read_Byte();; s) u v, ^5 k. E, J8 o
- }
" s: A. b9 X1 u - if((buf[0] + buf[1] + buf[2] + buf[3]) == buf[4])( u2 ~; Y8 [* L f5 R$ y
- {
* s! \2 s: M& f0 l+ \5 D - *humi = buf[0];
# D* M# _5 [+ x+ b8 h9 l* h' i - *temp = buf[2];
' T5 e" M! C( F( ^3 N& n - }1 v( Q1 U% |1 O6 p( C$ E6 R
- }
( q% p, w. m: u% v% I8 [% U - else return 1;
9 i/ |6 Q% b7 K - return 0;+ [" I1 q; I0 L0 s0 e: a* {; `
- }</i>
复制代码 ; W$ L" m' F/ U# Z" A3 n: y
2.DHT11读取测试9 b# @ m% W; H( Z
S3 g0 n4 k3 A8 J* @
- Y* D3 s9 Q& }3 S$ K$ y
z( x: s; v% Y! |( B9 W1 m. f- while(DHT11_Init()) //DHT11初始化
4 U$ o2 v. d6 w F4 ~0 Y - {* M5 {+ `1 w/ M8 Y
- LCD_DisplayStringLine(Line5, (uint8_t *)"DHT11 Error ");
) ]1 Q6 i9 q) M' `7 F* ^6 m - HAL_Delay(200);- ?8 R) v& ~9 G. N
- }
5 N3 P- y$ E8 X; D1 D& x! X- f - LCD_DisplayStringLine(Line5, (uint8_t *)"DHT11 OK ");$ ^: C( w2 R( _
- HAL_Delay(1200);
复制代码- DHT11_Read_Data(&temperature_high, &humidity_high); //读取温湿度值/ k, B( |+ u' v) j) L2 @8 S- W
- sprintf((char *)arr, "Moisture:%2d%%",humidity_high);
, j0 _3 v& \8 q4 S# z- t$ S- M2 | - LCD_DisplayStringLine(Line6,arr);
2 F+ \8 J @9 Q5 s& X0 O - sprintf((char *)arr, "Temperature:%2d",temperature_high);
1 c& W) f8 _; S) N; S, D0 g# B - LCD_DisplayStringLine(Line8,arr);' |: W/ ~' P( a+ i
复制代码
" x$ S- p+ @ q2 }* |' @4 \0 m. E1 i5 B, p
|