标题: IIC为什么读不出数据? [打印本页]

作者: hs_k    时间: 2020-4-25 21:03
标题: IIC为什么读不出数据?
        TempHumiValue_t temp_humi_Value;
//                TempHumiValue_t *temp_humi_Va;
        u16 tem,hum;
        u16 buff[6];
        float Temperature=0;
        float Humidity=0;
        
        IIC_Start();
        IIC_SendByte(addr<<1 | write);//写7位I2C设备地址加0作为写取位,1为读取位
        IIC_wait_ACK();
        IIC_SendByte(0x2C);
        IIC_wait_ACK();
        IIC_SendByte(0x06);
        IIC_wait_ACK();
        IIC_Stop();
        delay_ms(50);
        IIC_Start();
        IIC_SendByte(addr<<1 | read);//写7位I2C设备地址加0作为写取位,1为读取位
        if(IIC_wait_ACK()==0)
        {
                buff[0]=IIC_RcvByte();
               
                IIC_ACK();
                buff[1]=IIC_RcvByte();
               
                IIC_ACK();
                buff[2]=IIC_RcvByte();
               
                IIC_ACK();
                buff[3]=IIC_RcvByte();
               
                IIC_ACK();
                buff[4]=IIC_RcvByte();
        
                IIC_ACK();
                buff[5]=IIC_RcvByte();
               
                IIC_NACK();
                IIC_Stop();
        }
        tem = ((buff[0]<<8) | buff[1]);//温度拼接
        hum = ((buff[3]<<8) | buff[4]);//湿度拼接
        
        /*转换实际温度*/
        Temperature= tem ;// T = -45 + 175 * tem / (2^16-1)
        Humidity= hum;// RH = hum*100 / (2^16-1)
        
        temp_humi_Value.temperature=Temperature;
        temp_humi_Value.humidity=Humidity;
        
        if((Temperature>=-20)&&(Temperature<=125)&&(Humidity>=0)&&(Humidity<=100))//过滤错误数据
        {
            temp_humi_Value.temperature=Temperature;               
            temp_humi_Value.humidity=Humidity;                        
            printf("温度为%f,湿度为%f%% \r\n",temp_humi_Value.temperature,temp_humi_Value.humidity);
               



        }

          hum=0;
          tem=0;


作者: man1234567    时间: 2020-4-26 15:12
挂个别的IIC试试就知道是程序问题还是硬件问题了,IIC的代码网上很多先找个好用的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1