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;

还请大神指教;


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。