篇首语:本文由小编为大家整理,主要介绍了SHTC3温湿度传感器的使用相关的知识,希望对你有一定的参考价值。
1、SHTC3简单说明
SHTC3是一个检测温度、湿度的传感器,可以检测-40℃~125℃的温度范围和0%~100%的湿度范围。
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 Command14 #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 Command18 #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 Command22 #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 Command26 #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 = I2C_WRITE_BYTE(cmd & 0xFF); 11 if(SHTC3_ERR != 0)12 13 I2C_STOP();14 15 16 17
SHTC3_SOFT_RESET_CMD是SHTC3的软件复位命令,主机通过发送该命令来复位SHTC3。一般在上电初始化时,主机通过发送该命令来复位一下SHTC3。通过调用SHTC3_WRITE_CMD(SHTC3_SOFT_RESET_CMD)函数来软件复位SHTC3。
以上是关于SHTC3温湿度传感器的使用的主要内容,如果未能解决你的问题,请参考以下文章