初级会员
- 积分
- 69
- 金钱
- 69
- 注册时间
- 2017-6-27
- 在线时间
- 22 小时
|
楼主 |
发表于 2022-12-12 15:48:37
|
显示全部楼层
读写函数完全跟原子哥一样
u8 AT24C256_ReadOneByte(u16 ReadAddr2)
{
u8 temp=0;
IIC_Start();
if(EE_TYPE2>AT24C16)
{
IIC_Send_Byte(0XA6); // 发送写命令
IIC_Wait_Ack();
IIC_Send_Byte((ReadAddr2>>8));//发送高地址
}
else IIC_Send_Byte(0XA6+((ReadAddr2/256)<<1)); //发送器件地址0XA6 写数据
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr2%256); //发送低地址
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(0XA7); //进入接收模式
IIC_Wait_Ack();
temp=IIC_Read_Byte(0);
IIC_Stop();//2úéúò???í£?1ì??t
return temp;
}
void AT24C256_WriteOneByte(u16 WriteAddr2,u8 DataToWrite2)
{
IIC_Start();
if(EE_TYPE2>AT24C16)
{
IIC_Send_Byte(0XA6); // 发送写命令
IIC_Wait_Ack();
IIC_Send_Byte((WriteAddr2>>8));//发送高地址
}
else
{
IIC_Send_Byte(0XA6+((WriteAddr2/256)<<1)); //发送器件地址0XA6 写数据
}
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr2%256); //发送低地址
IIC_Wait_Ack();
IIC_Send_Byte(DataToWrite2); //发送字节
IIC_Wait_Ack();
IIC_Stop();//2úéúò???í£?1ì??t
delay_ms(100);
} |
|