|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在网上找的 SHT20 的程序,我只修改了端口 由PB6、PB7也成了 PB10、PB11
( ~, \1 S+ Z1 Q0 M* g3 r5 {6 W$ h, S可运行后,读出的值为128.多,温湿度的值都不变。
9 e2 O. Y8 p2 t. Q3 J好像接不接传感器都显示128.多 的值!) J9 V q" v+ c9 W2 B( W
请各位大神指教一下,那里有问题?谢谢
4 g, h l+ _& a! i6 ?
9 ^3 Z# a3 ?7 B% C5 a7 W0 x" L# V" f
3 R2 x/ T# }' N2 L.h 的设置,我只改了前3行7 C2 a( h8 `/ e( L. b
4 S. F `% L) i! E
% _ P% [/ \+ Z$ v% [5 T#define SHT2x_I2C_PORT GPIOB
% F) V7 y8 `" B1 l2 t#define SHT2x_SCL_PIN GPIO_Pin_10 //6/ r8 [" ^. a3 ~' e2 d+ Y/ n
#define SHT2x_SDA_PIN GPIO_Pin_11 //7. I# D4 f; y4 F/ D; z' ~7 ^& T) z
% D" c1 X Y ^9 x
1 T8 c2 E4 a" r#define SHT2x_SCL_HIGH() GPIO_SetBits(SHT2x_I2C_PORT, SHT2x_SCL_PIN)
2 b0 ^6 Z P+ N4 S#define SHT2x_SCL_LOW() GPIO_ResetBits(SHT2x_I2C_PORT, SHT2x_SCL_PIN)
" e; W2 t# ?8 j, v) p. |
' v* F- S2 k0 c6 R
1 m) q* q7 H* u$ u3 k+ }#define SHT2x_SDA_HIGH() GPIO_SetBits(SHT2x_I2C_PORT, SHT2x_SDA_PIN)
) S f8 @4 W5 J; k#define SHT2x_SDA_LOW() GPIO_ResetBits(SHT2x_I2C_PORT, SHT2x_SDA_PIN)5 S4 T1 g6 ~6 u4 _
) }2 q% j: F1 B9 v) \0 E
* A3 w0 a4 A, p' ?7 a( V8 v
#define SHT2x_SCL_STATE() GPIO_ReadInputDataBit(SHT2x_I2C_PORT, SHT2x_SCL_PIN); z3 B1 u* \9 b' o2 D
#define SHT2x_SDA_STATE() GPIO_ReadInputDataBit(SHT2x_I2C_PORT, SHT2x_SDA_PI' m9 e( x; F4 P y O b, N
9 D. ~) W3 I4 X1 W1 n) J. E8 d# M0 y7 ?. b2 S5 O! A7 s0 H
! x+ W% _6 j3 r9 b6 v/ F
, i+ B4 K8 E" A# N- ]1 J9 a. J) O
.c 初始化函数,我只加了 RCC_APB2PeriphclockCmd(RCC_APB2Periph_GPIOB , ENABLE);这一句
- v E% C! E+ g1 r8 S1 A. J$ r3 z* I/ x2 x. m# J
6 w/ m0 w l. X7 h
void SHT2x_Init(void)
) v2 `, h1 u( N$ `# O{
9 [# O0 e }8 t GPIO_InitTypeDef GPIO_InitStructure;
: X/ p3 G! [7 A7 W% b1 I( ~$ w1 Z4 r9 E, H4 s' [
& i% v* d! f" a4 G$ s1 Q$ c# Y
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);( L$ r! C: U+ A4 ~1 Z- G. Z
f/ y4 b0 X! H7 q# Z* R3 {; H( y; C; e9 Y
GPIO_InitStructure.GPIO_Pin = SHT2x_SCL_PIN | SHT2x_SDA_PIN;* D& l( K" m4 f6 {, K
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
, h7 i8 _; ?, L. {/ | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;' ?# q- I: T3 |9 @" R, y" V
GPIO_Init(SHT2x_I2C_PORT, &GPIO_InitStructure);
% b h& B7 Y0 o, a; f
7 y' l$ H3 D: P- a
8 m% d$ M5 |! A4 g- { SHT2x_SCL_HIGH();* }6 F M- ]/ r6 j
SHT2x_SDA_HIGH();
* L& s+ X2 h. X( f# b. s6 R$ t) R& s0 I7 \' G* O! `2 T& z J
- l' x+ U1 {( W9 r: `, z SHT2x_Delay(80);6 ?5 ^; T) z: a7 C
) M' s, w( X; K* w. s( Q' v% c Z
, [- \& s& N) f1 c SHT2x_SoftReset();
7 d) j; Q5 V7 y' g) N% f# q6 I}
R4 e; _8 y( a: B( B# W8 O4 O0 J; V8 r; D7 e: p- I1 `
|
|