标签:mod add nbsp 芯片 bsp cmd 组成 margin size
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 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 = 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。
标签:mod add nbsp 芯片 bsp cmd 组成 margin size
原文地址:https://www.cnblogs.com/h1019384803/p/11519072.html