发个玩SHT40温湿度传感器时遇到的坑

[复制链接]
查看916 | 回复4 | 2024-9-1 16:56:10 | 显示全部楼层 |阅读模式
本帖最后由 lsrly 于 2024-9-1 16:56 编辑

前一段时间我这个小白玩SHT40温湿度传感器时怎么调都调不出来温度和湿度,经过网络大神们的帮助,现在终于调试来了,现把原因发出来给有需要的人。

1.IIC地址:数据手册给的地址SHT40的0x44,即01000100,即一个字节的低7位,没有玩过IIC的,用别人的代码时会直接写入0X44,那样很大的可能会找不到从设备的。那时因为IIC发送的数据是高位在前,最低位是读写位,也就是说会先出7位地址再发一位读写位,比如SHT40地址是0x44,即01000100,如果我们直接写0x44,那么IIC会把0100010当成地址即0x22,那就没办法找到SHT40这个设备了,因此我们需要把SHT40的7位地址移到高位,然后再最低位放0或1来代表读或写。比如SHT40的地址实际是1000100x即0x88为写入地址,x代表读或写。当然每个厂家都遵循0为写,1为读的规则,所以我们直接将最后一位看作是0,因此我们在写SHT40地址就填0x88就行,要读的话函数内部会自动给你补上末位的1。所以我们要把SHT40的写地址为0X88,读地址为0X89,才能 给SHT40正常的通讯,但要要注意有的IIC程序已在程序中做了这个转换。
2.就是读的时序SHT40需要先写数据后要停止信号并给10MS左右的时间给SHT40去转换温度和湿度。
通用IIC时序
5678c02b65d44796921c28a74ead0234.png

SHT40写时序与上面一样,读时序就是在写时序完成后要等10MS左右才能去读温度和湿度,要不出不来(我也是一直调不出来才看到要停一下)
50ee2e0c2080496789a1f0b0508b2196.png



好好学习,努力挣钱,专心
回复

使用道具 举报

iiv | 2024-9-1 19:03:17 | 显示全部楼层
大佬优秀
回复

使用道具 举报

bzhou830 | 2024-9-2 08:20:10 | 显示全部楼层
大佬优秀
选择去发光,而不是被照亮
回复

使用道具 举报

WildboarG | 2024-9-2 08:55:32 | 显示全部楼层
大佬优秀
回复

使用道具 举报

爱笑 | 2024-9-2 13:43:53 | 显示全部楼层
用心做好保姆工作
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则