Ketose 发表于 2013-12-17 17:14
经测试,是楼主程序的问题。我这里没有出现楼主说的那种情况。
哦,谢谢你的回答。
这是我程序大概是这样的
main()
{
CurrentAdds = 0xe1; //第一次下载的时候写入
Sector_Erase(EEPROM_IDAddres); //擦除EEPROM
Sector_Erase(0x200);
Byte_Program(EEPROM_IDAdds,CurrentAdds);//将地址存储到EEPROM中,
while(**!='\0')
{
Byte_Program(EEPROM_**Adds+i,**); //将信息存储到EEPROM中
i++;
}
//第二次下载时,注释以上
CurrentAdds = Byte_Read(EEPROM_IDAddres);//从EEPROM中读取本机地址
while(1)
{
if(AddsChange)//如果地址改变 {
AddsChange=0;
Sector_Erase(EEPROM_IDAddres); //擦除EEPROM
Byte_Program(EEPROM_IDAddres,CurrentAdds);//将改变后的本机地址存储到EEPROM中
}
}
}
在通信的过程中可能会重新设定地址,但是将新地址写入EEPROM后,以前写的**信息就没了,我可以肯定它们是在不同的扇区的。我尝试了别的扇区都是这样子,弄得我没折了。
|