zhsoliakisd 发表于 2026-6-14 09:06:46

STC32G144K246 eeprom问题

32g144k246的例程上,关闭EEPROM时的写法如下:


void DisableEEPROM(void)
{
    IAP_CONTR = 0;          //关闭 IAP 功能
    IAP_CMD = 0;            //清除命令寄存器
    IAP_TRIG = 0;         //清除触发寄存器
    IAP_ADDRE = 0xff;       //将地址设置到非 IAP 区域
    IAP_ADDRH = 0xff;       //将地址设置到非 IAP 区域
    IAP_ADDRL = 0xff;
}


这里IAP_ADDR的地址赋值为0XFF;
而ai8051u的例程上的写法如下:

void IapIdle(void)//关闭ISP/IAP/EEPROM 功能
{
IAP_CONTR=0;
IAP_CMD=0;
IAP_TRIG=0;
IAP_ADDRE=0X00;
IAP_ADDRH=0X00;
IAP_ADDRL=0X00;
}

这里IAP_ADDR的地址赋值为0X00;

两者IAP_ADDR的地址赋值不同,请问有什么区别呢?实际使用时,针对32g144k246和ai8051u禁止eeprom的函数中,IAP_ADDR该取什么值呢?

神农鼎 发表于 2026-6-14 09:19:42


不知
www.STCAIMCU.com 论坛的【AI 助手】
回答如何









狂热主宰 发表于 2026-6-14 09:34:46

可能寄存器取值和内部逻辑有关
也有可能和安全机制有关
特定取值可disenable
按照官方的手册
和参考程序

zhsoliakisd 发表于 2026-6-22 17:34:14

狂热主宰 发表于 2026-6-14 09:34
可能寄存器取值和内部逻辑有关
也有可能和安全机制有关
特定取值可disenable


好的谢谢
页: [1]
查看完整版本: STC32G144K246 eeprom问题