发帖
4 0 0

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

lsrly
论坛元老

15

主题

471

回帖

8161

积分

论坛元老

积分
8161
技术杂谈 1421 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



──── 0人觉得很赞 ────

使用道具 举报

2024-9-1 19:03:17
大佬优秀
2024-9-2 08:20:10
大佬优秀
2024-9-2 08:55:32
大佬优秀
2024-9-2 13:43:53
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28251 个
  • 话题数: 40215 篇