中级会员
 
- 积分
- 380
- 金钱
- 380
- 注册时间
- 2014-12-13
- 在线时间
- 89 小时
|
发表于 2016-1-1 23:41:12
|
显示全部楼层
24c256经测试改动三个地方,就可以用
1、24cxx.h 里面替换 #define EE_TYPE AT24C256
2、//在AT24CXX指定地址读出一个数据
//ReadAddr:开始读数的地址
//返回值 :读到的数据
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(); //经测试使用24c256此句必须屏蔽
}else IIC_Send_Byte(0XA0+((ReadAddr/256)<<1)); //发送器件地址0XA0,写数据
3、//检查AT24CXX是否正常
//这里用了24XX的最后一个地址(32767)来存储标志字.
//如果用其他24C系列,这个地址要修改
//返回1:检测失败
//返回0:检测成功
u8 AT24CXX_Check(void)
{
u8 temp;
temp=AT24CXX_ReadOneByte(32767);//避免每次开机都写AT24CXX
if(temp==0X55)return 0;
else//排除第一次初始化的情况
{
AT24CXX_WriteOneByte(32767,0X55);
temp=AT24CXX_ReadOneByte(32767);
if(temp==0X55)return 0;
}
return 1;
}
其余代码无需改动,另外SCL SDA 记得改哦 |
|