这个问题我发现有很多人都不太会,所以我出一个文章来解决这个问题。话不多说,直接上干货,有用就点赞收藏,谢谢。
首先在提供的iic.c的文件中 加入自定义函数读写EEPROM,如下图
void WriteEEPROM(unsigned char add,unsigned char dat)
{
IIC_Start();
IIC_SendByte(0xa0);
IIC_WaitAck();
IIC_SendByte(add);
IIC_WaitAck();
IIC_SendByte(dat);
IIC_WaitAck();
IIC_Stop();
}
unsigned char ReadEEPROM(unsigned char add)
{
IIC_Start();
IIC_SendByte(0xa0);
IIC_WaitAck();
IIC_SendByte(add);
IIC_WaitAck();
IIC_Start();
IIC_SendByte(0xa1);
IIC_WaitAck();
add = IIC_RecByte();
IIC_WaitAck();
IIC_Stop();
return add;
}
然后,利用提供的ISP生成延时3ms的函数
使用如下,每次写之后调用3ms延时,读不需要。
WriteEEPROM(0, 4);Delay3ms();
WriteEEPROM(1, 4);Delay3ms();
WriteEEPROM(2, 4);Delay3ms();
WriteEEPROM(3, 4);Delay3ms();
interval[0] = ReadEEPROM(0) * 100;
interval[1] = ReadEEPROM(1) * 100;
interval[2] = ReadEEPROM(2) * 100;
interval[3] = ReadEEPROM(3) * 100;
转载请注明原处,谢谢。