找回密码
 立即注册
查看: 205|回复: 2

使用STC32G12K128时擦除EEPROM遇到问题,向大神请教!

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:237
  • 最近打卡:2026-03-18 15:34:33
已绑定手机

17

主题

64

回帖

468

积分

中级会员

积分
468
发表于 2025-12-25 15:42:57 | 显示全部楼层 |阅读模式
我在使用STC32G12K128时遇到问题,向大神请教!

我的理解,STC32G12K128的128KB Flash分为两个64KB块,
     IAP_ADDRE=0:      0:0000-0:FFFF (64KB)
     IAP_ADDRE=1:      1:0000-1:FFFF (64KB)

第一种情况:
下载程序时,我将EEPROM空间大小设置64KB,留出64KB空间给程序代码ROM,
这种情况下,读、写任意扇区、整体擦除64KB空间(每次擦除一个扇区)都正常。

第二种情况:
下载程序时,我将EEPROM空间大小设置96KB,留出32KB空间给程序代码ROM,
那么我理解的EEPROM的地址范围是:0:0000-1:7FFF
                             ROM地址范围是:1:8000-1:FFFF
这种情况下,读、写任意扇区都正常,但整体擦除96KB空间时(每次擦除一个扇区)就会死机,
出现程序代码也被擦除的现象,这是什么原因?求大神帮助!

附:扇区擦除代码:

void EEPROM_SectorErase(u32 EE_address)
{
    IAP_ENABLE();                       //设置等待时间,允许IAP操作,送一次就够
    IAP_ERASE();                         //宏调用, 送扇区擦除命令,命令不需改变时,不需重新送命令
                                                 //只有扇区擦除,没有字节擦除,512字节/扇区。

    //IAP_ADDRE = (u8)(EE_address >> 16); //送扇区地址高字节(地址需要改变时才需重新送地址)

    if (EE_address < 0x10000) {
            IAP_ADDRE = 0x00;          // 0x00000-0x0FFFF地址范围
        } else {
            IAP_ADDRE = 0x01;          // 0x10000-0x1FFFF地址范围
        }

    IAP_ADDRH = (u8)(EE_address >> 8);    //送扇区地址中字节(地址需要改变时才需重新送地址)
    IAP_ADDRL = (u8)EE_address;                 //送扇区地址低字节(地址需要改变时才需重新送地址)
    EEPROM_Trig();                                        //触发EEPROM操作
    DisableEEPROM();                                   //禁止EEPROM操作
}


回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:643
  • 最近打卡:2026-03-19 09:00:20
已绑定手机

52

主题

2485

回帖

8788

积分

论坛元老

积分
8788
发表于 2025-12-25 16:37:11 | 显示全部楼层
STC32G12K128的EEPROM分配是从FE:0000开始到FE:FFFF
超过64K后从FF:0000开始往后分配,这段空间跟程序空间重叠,需要软件进行保护
要使用96K EEPROM的话,烧录时EEPROM大小要设置128K
访问EEPROM时FF:0000~FF:7FFF(EEPROM地址1:0000~1:7FFF)空间不能进行擦写操作。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:724
  • 最近打卡:2026-03-18 07:56:47
已绑定手机

97

主题

7244

回帖

1万

积分

超级版主

积分
13791
发表于 2025-12-25 18:27:01 | 显示全部楼层
看图直观一些:

截图202512251827106537.jpg

回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-19 13:37 , Processed in 0.104201 second(s), 54 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表