IIC实验中把硬件AT24C02换成AT24C128 校验失败问题

2019-07-20 23:27发布

#define AT24C01                127
#define AT24C02                255
#define AT24C04                511
#define AT24C08                1023
#define AT24C16                2047
#define AT24C32                4095
#define AT24C64            8191
#define AT24C128        16383
#define AT24C256        32767
下面是我更改的地方。
#define EE_TYPE AT24C128



u8 AT24CXX_Check(void)
{
        u8 temp;
        temp=AT24CXX_ReadOneByte(16383);   
        if(temp==0X55)return 0;                  
        else
        {
                AT24CXX_WriteOneByte(16383,0X55);
            temp=AT24CXX_ReadOneByte(16383);         
                if(temp==0X55)return 0;
        }
        return 1;                                                                                          
}
这是根据实验例程更改的,不过校验失败了,谁有没有比较简单的方式,可以直接校验成功。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
云行雨施
1楼-- · 2019-07-21 05:25
已搞定
云行雨施
2楼-- · 2019-07-21 06:49
本帖最后由 云行雨施 于 2016-2-29 11:01 编辑

修改了三个地方,还要屏蔽第二个IIC_Wait_Ack();        if(EE_TYPE>AT24C16)
        {
                IIC_Send_Byte(0XA0);           //·¢ËíD′Ãüáî
                IIC_Wait_Ack();
                IIC_Send_Byte(ReadAddr>>8);//·¢Ëí¸ßμØÖ·
                //IIC_Wait_Ack();                 //×¢òa′Ë′|ê1óÃAT24C128oíAT24C256DèòaÆá±Î£¬24C02Ôò2»Dèòa¡£
        }else IIC_Send_Byte(0XA0+((ReadAddr/256)<<1));   //·¢&#203;í&#198;÷&#188;tμ&#216;&#214;·0XA0,D′êy&#190;Y          

jeff_梁
3楼-- · 2019-07-21 11:54
我也是这样修改的 读取AT24C08的数据不正常 好奇怪
查询无结果
4楼-- · 2019-07-21 16:36
楼主可以详细说一下吗,我也遇到这个问题了,谢谢

一周热门 更多>