帮忙看一下吧!关于操作EEPROM的问题
时间:10-02
整理:3721RD
点击:
现在手上用的是IAP15F2K61S2,没有专门的EEPROM区,用IAP功能进行擦除、写、读操作。可以现在问题是可以擦除,可以写,可以读,并用串口检测数据,串口采用的是定时器2产生波特率,但不知怎的定时器1进不去中断了?
u8 idata *RamID;
u8 RomID[6];
u8 i;
u8 Addr;
u8 temp;
//EA=0;
RamID = ID_ADDR_RAM; //从RAM区读取ID号
Addr = IAP_ADDRESS; //地址为0xDA00
for(i=0; i<7; i++) //读7个字节
{
RomID = *RamID;
SendByte(*RamID++); //发送ID到串口
Delay5ms();
ClrWdt();
}
/*
for(i=0;i<7;i++)
{
ClrWdt();*/
IapEraseSector(0xDA00);
//IAP_ADDRESS++;
//}
for(i=0;i<7;i++)
{
IapProgramByte(Addr,RomID);
Addr++;
}
Addr = IAP_ADDRESS;
SendByte(0xdd);
Delay5ms();
for(i=0;i<7;i++)
{
temp = IapReadByte(Addr++);
SendByte(temp); //发送ID到串口
Delay5ms();
ClrWdt();
}
u8 idata *RamID;
u8 RomID[6];
u8 i;
u8 Addr;
u8 temp;
//EA=0;
RamID = ID_ADDR_RAM; //从RAM区读取ID号
Addr = IAP_ADDRESS; //地址为0xDA00
for(i=0; i<7; i++) //读7个字节
{
RomID = *RamID;
SendByte(*RamID++); //发送ID到串口
Delay5ms();
ClrWdt();
}
/*
for(i=0;i<7;i++)
{
ClrWdt();*/
IapEraseSector(0xDA00);
//IAP_ADDRESS++;
//}
for(i=0;i<7;i++)
{
IapProgramByte(Addr,RomID);
Addr++;
}
Addr = IAP_ADDRESS;
SendByte(0xdd);
Delay5ms();
for(i=0;i<7;i++)
{
temp = IapReadByte(Addr++);
SendByte(temp); //发送ID到串口
Delay5ms();
ClrWdt();
}