SHTC3温湿度传感器的使用

1、SHTC3简单说明  

  SHTC3是一个检测温度、湿度的传感器,可以检测-40℃~125℃的温度范围和0%~100%的湿度范围。

  SHTC3的工作电压范围为:1.62V~3.6V。

  SHTC3使用的通讯方式是I2C,通讯速率可以达到400KHz。

  SHTC3的管脚图如下:

  从图中可以看到,SHTC3只有4个引脚,电源和地、2个I2C通讯引脚。

  关于SHTC3更多说明,可以查看它的规格资料。

2、SHTC3的设备地址和命令

  在SHTC3的规格资料内,SHTC3的I2C设备地址为0x70,如下:

  在实际的使用过程中,SHTC3的设备地址需要与读写数据/命令方向位组成一个字节同时发送,字节的最低位为读写数据/命令方向位,高7位是SHTC3的设备地址。

  如果要通过I2C写数据或命令给SHTC3,在I2C起始信号之后,需要发送“1110 0000”,即0xE0给SHTC3,除了通过高7位“1110 000”的设备地址寻址还通过最低位“0”通知SHTC3接下来是写数据或命令操作。

  如果要通过I2C读取SHTC3中的数据,在I2C起始信号之后,需要发送“1110 0001”,即0xE1给SHTC3,除了通过高7位“1110 000”的设备地址寻址还通过最低位“0”通知SHTC3接下来是读取数据的操作。

  SHTC3的命令由2个字节组成,在发送命令时,主机需要通过I2C发送2个字节命令给SHTC3。SHTC3有如下命令:

 1 //SHTC3地址
 2 #define SHTC3_ADDRESS                   0x70
 3 
 4 //SHTC3 命令
 5 #define SHTC3_WIRTE_CMD                 ((SHTC3_ADDRESS<<1)&0xFE)
 6 #define SHTC3_READ_CMD                  ((SHTC3_ADDRESS<<1)|0x01)
 7 
 8 #define SHTC3_SOFT_RESET_CMD            0x805D//软件复位命令
 9 #define SHTC3_READ_ID_CMD               0xEFC8//读取SHTC3 ID命令
10 #define SHTC3_WAKE_UP_CMD               0x3517//将芯片从睡眠模式唤醒命令
11 #define SHTC3_SLEEP_CMD                 0xB098//使芯片进入休眠命令
12 
13 //Normal Mode Clock Stretching Enable Measurement Command
14 #define SHTC3_NOR_READ_TEMP_FIR_EN_CMD  0x7CA2//
15 #define SHTC3_NOR_READ_HUM_FIR_EN_CMD   0x5C24//
16 
17 //Normal Mode Clock Stretching Disable Measurement Command
18 #define SHTC3_NOR_READ_TEMP_FIR_DIS_CMD 0x7866//
19 #define SHTC3_NOR_READ_HUM_FIR_DIS_CMD  0x58E0//
20 
21 //Low Power Mode Clock Stretching Enable Measurement Command
22 #define SHTC3_LOW_READ_TEMP_FIR_EN_CMD  0x6458//
23 #define SHTC3_LOW_READ_HUM_FIR_EN_CMD   0x44DE//
24 
25 //Low Power Mode Clock Stretching Disable Measurement Command
26 #define SHTC3_LOW_READ_TEMP_FIR_DIS_CMD 0x609C//
27 #define SHTC3_LOW_READ_HUM_FIR_DIS_CMD  0x401A//

  主机发送2个字节命令给SHTC3的代码如下:

 1 void SHTC3_WRITE_CMD(uint16_t cmd)
 2 {    
 3     I2C_START();
 4     SHTC3_ERR = I2C_WRITE_BYTE(SHTC3_WIRTE_CMD);
 5     if(SHTC3_ERR != 0)
 6     {
 7         SHTC3_ERR = I2C_WRITE_BYTE((cmd>>8) & 0xFF);
 8         if(SHTC3_ERR != 0)
 9         {    
10             SHTC3_ERR =
  • 2
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值