HTU21D

2019-08-14 01:15发布

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;

还请大神指教;


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
24条回答
店小迩
1楼-- · 2019-08-16 00:13
18811707971 发表于 2017-9-13 08:47
我的是这种,没有的话得接上拉电阻,我看程序设置是开漏

我也是这个模块,IO设置成开漏有问题吗
店小迩
2楼-- · 2019-08-16 00:49
18811707971 发表于 2017-9-13 08:47
我的是这种,没有的话得接上拉电阻,我看程序设置是开漏

设置成开漏,外接了上拉电阻
18811707971
3楼-- · 2019-08-16 04:17
店小迩 发表于 2017-9-13 08:50
我也是这个模块,IO设置成开漏有问题吗

没问题,直接接上就可以了。那真可能你模块有问题
店小迩
4楼-- · 2019-08-16 07:08
 精彩回答 2  元偷偷看……
18811707971
5楼-- · 2019-08-16 11:33
店小迩 发表于 2017-9-13 09:01
你检测的时候是放置在什么环境下的,是直接放在空气中还是外加盒子了的

就直接在空气中啊,昨天回住处测试的
店小迩
6楼-- · 2019-08-16 14:18
18811707971 发表于 2017-9-13 09:36
就直接在空气中啊,昨天回住处测试的

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

一周热门 更多>