记录一下工作中操作SHTCX与SHT3X系列温湿度探头遇到的问题
IIC配置
IIC配置一般就两种方式
- 软件GPIO模拟IIC
硬件配置IIC
这两种方式都需要注意IIC通信上的速度,一般是100Khz-1000Khz,我一般都是使用100Khz
硬件设置
不管是软件配置还是硬件配置IIC,都需要添加外部上拉电阻
软件模拟IIC,虽然可以不使用外部上拉电阻,但是GPIO模式需要设置为推挽模式,而不是网上的一些开漏设置
探头说明
各个探头不一样,具体需要查看规格书,主要是注意探头的IIC地址,数据寄存器,ID寄存器,还有就是精度说明
SHTC3 | SHT31 | |
---|---|---|
IIC地址 | 0b1110000 | 0x44(ADDR low)0x45(ADDR high) |
温度精度 | ± 0.2°c(5°c-60℃) | ± 0.2°c (0°c-90°c) |
湿度精度 | ± 2%RH (20-80 %RH) | ± 2%RH (0-90 %RH) |
SHTCX探头操作流程
- write command
- wakeup command
- measurement command
- read command
- read humidity HSB ->LSB
- read temperature HSB->LSB
- CRC-8 checksum
1 | 本来这个地方是需要放CRC 代码的,不过网上一大把 |
conversion sensor output
$ RH = 100 * \dfrac {S_{RH}}{2^{16}} $
$ TH = -45 + 175*\dfrac {S_{T}}{2^{16}}$
SHT3X探头操作
- power up
- measurement mode
- start measurement
- read result
- CRC-8 checksum
conversion data
$ RH = 100 * \dfrac {S_{RH}}{2^{16} - 1} $
$ TH = -49 + 315*\dfrac {S_{T}}{2^{16} - 1}$