STC8G1K08A中EEPROM 无法调试出来,请老师指导
if(ia==7)//ZERO{
SurBufb=(am2>>24)&0x000000ff;;
SurBufb=(am2>>16)&0x000000ff;
SurBufb=(am2>>8)&0x000000ff;
SurBufb=(am2)&0x000000ff;
adnew1= am2;
EEPROM_SectorErase(0x0200);
EEPROM_write_n(0x0200,SurBufb,4);
IStep;}
void EEPROM_SectorErase(u16 EE_address)
{
IAP_CONTR = 0x80;
IAP_TPS = 22;
IAP_CMD = 3;
IAP_ADDRL = EE_address % 256;
EEPROM_Trig();
_nop_();
_nop_();
_nop_();
DisableEEPROM();
}
void EEPROM_write_n(u16 EE_address,u8 *DataAddress,u16 number)
{
IAP_CONTR = 0x80;
IAP_TPS = 22;
IAP_CMD = 2;
do
{
IAP_ADDRH = EE_address / 256;
IAP_ADDRL = EE_address % 256;
IAP_DATA= *DataAddress;
EEPROM_Trig();
_nop_();
_nop_();
_nop_();
EE_address++;
DataAddress++;
}while(--number);
DisableEEPROM();
}
以上数据无法写入EEPROM
先测试一下 我们的范例程序 国学芯用 发表于 2024-6-4 11:33
先测试一下 我们的范例程序
可移植性写的太好了宏太多了
这个连续写,可以成功的,就是写入的地址是FF才能写,所以之前已经写过数据,再次写数据就会以为写入了,再读取出来时数据却不一样,这是因为没有找擦除扇区。在反复调试时,由于没擦除数据就写入,为此折腾很多天才发现
页:
[1]