找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2278|回复: 1
打印 上一主题 下一主题
收起左侧

IIC为什么读不出数据?

[复制链接]
跳转到指定楼层
楼主
ID:637289 发表于 2020-4-25 21:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        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;

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:584814 发表于 2020-4-26 15:12 | 只看该作者
挂个别的IIC试试就知道是程序问题还是硬件问题了,IIC的代码网上很多先找个好用的。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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