jxz9876 发表于 2024-6-4 11:14:37

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:29

先测试一下 我们的范例程序

绎妄无绎 发表于 2024-12-2 23:37:11

国学芯用 发表于 2024-6-4 11:33
先测试一下 我们的范例程序

可移植性写的太好了宏太多了

aming_ou 发表于 2025-2-13 14:03:12

这个连续写,可以成功的,就是写入的地址是FF才能写,所以之前已经写过数据,再次写数据就会以为写入了,再读取出来时数据却不一样,这是因为没有找擦除扇区。在反复调试时,由于没擦除数据就写入,为此折腾很多天才发现
页: [1]
查看完整版本: STC8G1K08A中EEPROM 无法调试出来,请老师指导