OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8264|回复: 26

HTU21D

[复制链接]

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
发表于 2017-9-8 08:54:37 | 显示全部楼层 |阅读模式
1金钱
stm32操作HTU21D,能够正常读取温度的值(能够根据环境改变,与温度计一致),但是湿度的值一直是-6,不会改变;这里温度和湿度的读取操作一致,只有命令不一样(温度为0xf3,湿度为0xf5),湿度的操作如下:
        I2C_Start(); //起始信号              
        I2C_Send_Byte(SALVE_ADDR);
  if(I2C_Wait_Ack()==1){
                return 0;
        }
       
        I2C_Send_Byte(HUMI_NOHOLD_MASTER);       
        if(I2C_Wait_Ack()==1){
                return 0;
        }
       
do{

        delay_ms(20);
        I2C_Start(); //起始信号                          //重新发起始信号

        I2C_Send_Byte(I2C_ADR_R);
        }while(I2C_Wait_Ack()==1);

        Humi_Buffer[0]=I2C_Read_Byte(0);
        delay_us(10);
        Humi_Buffer[1]=I2C_Read_Byte(0);
  I2C_Read_Byte(1);
        I2C_Stop();
        SRH=((Humi_Buffer[0]*256)+Humi_Buffer[1]) & ~3;//最后两位 置0
  Humi=(SRH * 125.0/65536)-6 ;
        return Humi;

还请大神指教;


最佳答案

查看完整内容[请看2#楼]

看了一下,程序没啥问题,应该是你在测湿度时多写一个等待应答,我把它注册掉,测试出来就没啥问题了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-8 08:54:38 | 显示全部楼层
看了一下,程序没啥问题,应该是你在测湿度时多写一个等待应答,我把它注册掉,测试出来就没啥问题了。
猎豹截图20170912213631.png
猎豹截图20170912213915.png
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-8 13:17:13 | 显示全部楼层
可以看看源码,是不是什么地方弄错了。搞过51的htu21d,应该两个一起读到的
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-8 13:59:18 | 显示全部楼层
18811707971 发表于 2017-9-8 13:17
可以看看源码,是不是什么地方弄错了。搞过51的htu21d,应该两个一起读到的

能不能说一下你当时使用时数据的变化情况,我把HTU21D放置在空气中(正常环境),读到的值都是负的,除非放在封闭环境中才会有数据,并且一直跳变
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-8 17:29:51 | 显示全部楼层
就是可以正常测量数据,我一开始串了5K电阻才正常显示,后面验证过其实没必要,如果需要,回头我把代码发上来,可以看看
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-11 08:34:05 | 显示全部楼层
18811707971 发表于 2017-9-8 17:29
就是可以正常测量数据,我一开始串了5K电阻才正常显示,后面验证过其实没必要,如果需要,回头我把代码发上 ...

如果可以,麻烦发我看看,邮箱: 837545695@qq.com  谢谢!
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-11 08:49:19 | 显示全部楼层
店小迩 发表于 2017-9-11 08:34
如果可以,麻烦发我看看,邮箱:   谢谢!

已发
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-11 09:50:35 | 显示全部楼层

谢谢,已收到,给我的感觉是逻辑上似乎没什么差别,但是我测量的数据就是与DHT11的差别很大,放置在正常环境中基本为负,条件改变才会有变化;DHT11读数基本在70%左右,HTU21D基本为负,使用的STM32开发版。
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-11 16:42:31 | 显示全部楼层
店小迩 发表于 2017-9-11 09:50
谢谢,已收到,给我的感觉是逻辑上似乎没什么差别,但是我测量的数据就是与DHT11的差别很大,放置在正常 ...

这我倒没遇到过,你要方便,可以发给我程序,下班回去可以看看,我手里有103的板子
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-12 09:42:40 | 显示全部楼层
18811707971 发表于 2017-9-11 16:42
这我倒没遇到过,你要方便,可以发给我程序,下班回去可以看看,我手里有103的板子

显示的结果怎样
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-12 11:10:27 | 显示全部楼层

你往我邮箱给我一份你代码吧,回去直接测一下,我那有HTU21D
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-12 11:47:42 | 显示全部楼层
18811707971 发表于 2017-9-12 11:10
你往我邮箱给我一份你代码吧,回去直接测一下,我那有HTU21D

发你了呢,昨天你给我发的那个邮箱
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-12 15:40:48 | 显示全部楼层
店小迩 发表于 2017-9-12 11:47
发你了呢,昨天你给我发的那个邮箱

哦哦,回去我看看,可能跑到垃圾箱去了
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-13 08:05:11 | 显示全部楼层
18811707971 发表于 2017-9-12 21:39
看了一下,程序没啥问题,应该是你在测湿度时多写一个等待应答,我把它注册掉,测试出来就没啥问题了。

嗯,我改了之后的测试结果还是和以前一样,那说明应该就是我的硬件的问题了
22.png
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-13 08:23:03 | 显示全部楼层
18811707971 发表于 2017-9-12 21:39
看了一下,程序没啥问题,应该是你在测湿度时多写一个等待应答,我把它注册掉,测试出来就没啥问题了。

我是直接买的模块,不应该存在硬件问题才对,那这个问题就奇葩了
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-13 08:31:57 | 显示全部楼层
店小迩 发表于 2017-9-13 08:23
我是直接买的模块,不应该存在硬件问题才对,那这个问题就奇葩了

看看传感器与MCU的接线有没有问题。
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-13 08:38:08 | 显示全部楼层
18811707971 发表于 2017-9-13 08:31
看看传感器与MCU的接线有没有问题。

scl PA5
SDA pa6
vcc 3.3
如果接线有问题的话应该温度也不对才对

你那边硬件模块是什么接的,有接上拉电阻吗? 多大的电阻?我不接电阻的话数据都是0
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-13 08:42:52 | 显示全部楼层
店小迩 发表于 2017-9-13 08:38
scl PA5
SDA pa6
vcc 3.3

我就以前在淘宝上买的,模块上面就有上拉电阻,我找个图
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-13 08:47:58 | 显示全部楼层
我的是这种,没有的话得接上拉电阻,我看程序设置是开漏
2017-09-13_084404.png
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-13 08:50:59 | 显示全部楼层
18811707971 发表于 2017-9-13 08:47
我的是这种,没有的话得接上拉电阻,我看程序设置是开漏

我也是这个模块,IO设置成开漏有问题吗
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-13 08:56:32 | 显示全部楼层
18811707971 发表于 2017-9-13 08:47
我的是这种,没有的话得接上拉电阻,我看程序设置是开漏

设置成开漏,外接了上拉电阻
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-13 08:56:41 | 显示全部楼层
店小迩 发表于 2017-9-13 08:50
我也是这个模块,IO设置成开漏有问题吗

没问题,直接接上就可以了。那真可能你模块有问题
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-13 09:01:31 | 显示全部楼层
18811707971 发表于 2017-9-13 08:56
没问题,直接接上就可以了。那真可能你模块有问题

你检测的时候是放置在什么环境下的,是直接放在空气中还是外加盒子了的
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2016-3-6
在线时间
393 小时
发表于 2017-9-13 09:36:20 | 显示全部楼层
店小迩 发表于 2017-9-13 09:01
你检测的时候是放置在什么环境下的,是直接放在空气中还是外加盒子了的

就直接在空气中啊,昨天回住处测试的
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

6

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-4-27
在线时间
48 小时
 楼主| 发表于 2017-9-14 13:30:18 | 显示全部楼层
18811707971 发表于 2017-9-13 09:36
就直接在空气中啊,昨天回住处测试的

今天用新购买的SI7021模块,原版的测试程序,可以得到和你一样的显示结果,基本确定是我所购买的模块有问题,非常感谢
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-9-11
在线时间
2 小时
发表于 2019-9-15 19:30:29 | 显示全部楼层
我的htu21温度和湿度都负数,求解呀
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-6-24
在线时间
4 小时
发表于 2022-5-6 10:46:53 | 显示全部楼层
18811707971 发表于 2017-9-8 13:17
可以看看源码,是不是什么地方弄错了。搞过51的htu21d,应该两个一起读到的

请问一下,可以发一下51单片机驱动HTU21D的代码嘛?正在调,但是温湿度读出来的都是一个值。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 08:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表