实验程序24C02的可以用到24C256吗?

2019-08-21 12:21发布

我的不能互用,
我改了实验程序中的 EE_TYPE 为AT24C256  标志字地址为32767
可是还是用不了

还有别的什么要改吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
35条回答
合肥-文盲
1楼-- · 2019-08-23 23:30
回复【16楼】niguanghui:
---------------------------------
测试通过了吗?就是把读写一个字节的那个等待应答注释掉就可以正常使用了吗
合肥-文盲
2楼-- · 2019-08-24 01:58
发现一个问题,24c02不能注释掉那句,注释了就不对了,不知道是不是<=16必须不能注释,>16必须注释才能正常使用,不知道是不是这样的,期待芯片到了测试,期待测试过的给个答案
合肥-文盲
3楼-- · 2019-08-24 04:36
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-08-24 05:29
回复【22楼】合肥-文盲:
---------------------------------
不知道你的那句是哪句.....
合肥-文盲
5楼-- · 2019-08-24 10:46
回复【23楼】正点原子:
---------------------------------
u8 AT24CXX_ReadOneByte(u16 ReadAddr) 
{     
u8 temp=0;             
    IIC_Start();   
if(EE_TYPE>AT24C16) 

IIC_Send_Byte(0XA0);    //发送写命令 
IIC_Wait_Ack(); 
IIC_Send_Byte(ReadAddr>>8);//发送高地址 
IIC_Wait_Ack();    
}else IIC_Send_Byte(0XA0+((ReadAddr/256)<<1));   //发送器件地址0XA0,写数据    

// IIC_Wait_Ack();      //EE_TYPE>AT24C16时 必须注释掉该句重复等待应答 否则IIC会发出结束信号 
    IIC_Send_Byte(ReadAddr%256);   //发送低地址 
IIC_Wait_Ack();      
IIC_Start();         
IIC_Send_Byte(0XA1);           //进入接收模式      
IIC_Wait_Ack();   
    temp=IIC_Read_Byte(0);     // send nACK & read data 
    IIC_Stop();//产生一个停止条件      
return temp; 


读写都一样的 
多了一个IIC_Wait_Ack();   IIC停止了
正点原子
6楼-- · 2019-08-24 11:20
回复【24楼】合肥-文盲:
---------------------------------
是的,确实有这个问题,新版本的已经改过来了。

一周热门 更多>