这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 探讨一下STC8G2K64S4EEPROM读写的异常问题

共6条 1/1 1 跳转至

探讨一下STC8G2K64S4EEPROM读写的异常问题

工程师
2021-06-10 22:06:59     打赏

大家晚上,哪位大侠帮我看下代码,搞不懂 STC8G2K64S4 (主频:24Mhz)这个芯片的eeprom起始地址如何确定,是从0000开始吗。我设置0000也没成功。。


下载器里面设置eeprom为4K。


我的源码如下:


void IapIdle()

{

        IAP_CONTR = 0; //关闭 IAP 功能

        IAP_CMD = 0; //清除命令寄存器

        IAP_TRIG = 0; //清除触发寄存器

        IAP_ADDRH = 0x80; //将地址设置到非 IAP 区域

        IAP_ADDRL = 0;

}


char IapRead(int addr)

{

        char dat;

        IAP_CONTR = 0x81; //使能 IAP

        IAP_TPS = 24; //设置擦除等待参数 12MHz

        IAP_CMD = 1; //设置 IAP 读命令

        IAP_ADDRL = addr; //设置 IAP 低地址

        IAP_ADDRH = addr >> 8; //设置 IAP 高地址

        IAP_TRIG = 0x5a; //写触发命令(0x5a)

        IAP_TRIG = 0xa5; //写触发命令(0xa5)

        _nop_();

        dat = IAP_DATA; //读 IAP 数据

        IapIdle(); //关闭 IAP 功能


return dat;

}


void IapProgram(int addr, char dat)

{

        IAP_CONTR = 0x81; //使能 IAP

        IAP_TPS = 24; //设置擦除等待参数 12MHz

        IAP_CMD = 2; //设置 IAP 写命令

        IAP_ADDRL = addr; //设置 IAP 低地址

        IAP_ADDRH = addr >> 8; //设置 IAP 高地址

        IAP_DATA = dat; //写 IAP 数据

        IAP_TRIG = 0x5a; //写触发命令(0x5a)

        IAP_TRIG = 0xa5; //写触发命令(0xa5)

        _nop_();

        IapIdle(); //关闭 IAP 功能

}

void IapErase(int addr)

{

        IAP_CONTR = 0x81; //使能 IAP

        IAP_TPS = 24; //设置擦除等待参数 12MHz

        IAP_CMD = 3; //设置 IAP 擦除命令

        IAP_ADDRL = addr; //设置 IAP 低地址

        IAP_ADDRH = addr >> 8; //设置 IAP 高地址

        IAP_TRIG = 0x5a; //写触发命令(0x5a)

        IAP_TRIG = 0xa5; //写触发命令(0xa5)

        _nop_(); //

        IapIdle(); //关闭 IAP 功能

}

void main()

{

...............................................

        nz_shi = IapRead(0X0200); //P1=0x12

while()

{

        IapErase(0X0200);

        apProgram(0X0200, nz_shi);

}

}






关键词: STC8G2K64S4     EEPROM    

工程师
2021-06-10 22:20:09     打赏
2楼

楼主,你的意思是把全部的0x0200改为0x0000就不正常?


工程师
2021-06-10 22:25:41     打赏
3楼

对于这种IAP型的我都怕了,我现在产品都备一片24C02  加个二毛钱成本


工程师
2021-06-10 22:26:04     打赏
4楼

期待高手的回答


工程师
2021-06-10 22:30:59     打赏
5楼
我用stc8,没出现过EEPROM数据丢失的问题啊!



工程师
2021-06-10 23:48:12     打赏
6楼

代码写的非常不错的


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]