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-14 10:35
 精彩回答 2  元偷偷看……
18811707971
2楼-- · 2019-08-14 13:03
店小迩 发表于 2017-9-11 09:50
谢谢,已收到,给我的感觉是逻辑上似乎没什么差别,但是我测量的数据就是与DHT11的差别很大,放置在正常 ...

这我倒没遇到过,你要方便,可以发给我程序,下班回去可以看看,我手里有103的板子
店小迩
3楼-- · 2019-08-14 15:01
18811707971 发表于 2017-9-11 16:42
这我倒没遇到过,你要方便,可以发给我程序,下班回去可以看看,我手里有103的板子

显示的结果怎样
18811707971
4楼-- · 2019-08-14 20:07
店小迩 发表于 2017-9-12 09:42
显示的结果怎样

你往我邮箱给我一份你代码吧,回去直接测一下,我那有HTU21D
店小迩
5楼-- · 2019-08-15 00:44
18811707971 发表于 2017-9-12 11:10
你往我邮箱给我一份你代码吧,回去直接测一下,我那有HTU21D

发你了呢,昨天你给我发的那个邮箱
18811707971
6楼-- · 2019-08-15 06:04
 精彩回答 2  元偷偷看……

一周热门 更多>