找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1532|回复: 6
收起左侧

15W408单片机片内EEPROM往不同扇区读写操作

[复制链接]
ID:705846 发表于 2024-4-13 16:26 | 显示全部楼层 |阅读模式
15W408片内EEPROM读写数据时IAP_ADDRESS+1的+1, +2,+3是什么意思。如果要往不同的扇区写数据应该怎么切换扇区。

                   set1=IapReadByte(IAP_ADDRESS+0);
                set2=IapReadByte(IAP_ADDRESS+1);
                set3=IapReadByte(IAP_ADDRESS+2);
                set4=IapReadByte(IAP_ADDRESS+3);


void save()
{
        IapEraseSector(IAP_ADDRESS);    //扇区擦除
        IapProgramByte(IAP_ADDRESS+0, set1);        
        IapProgramByte(IAP_ADDRESS+1, set2);        
        IapProgramByte(IAP_ADDRESS+2, set3);        
        IapProgramByte(IAP_ADDRESS+3, set4);        
}

回复

使用道具 举报

ID:213173 发表于 2024-4-13 19:25 | 显示全部楼层
STC15W408单片机的EEPROM有5K,分10个扇区,每个扇区容量512字节。各扇区首地址为0x0000、0x0200、0x0400、0x0600......。可以指定任意扇区首地址IAP_ADDRESS+n读写字节。
回复

使用道具 举报

ID:705846 发表于 2024-4-13 19:42 | 显示全部楼层
可以指定任意扇区首地址IAP_ADDRESS+n读写字节。这句话不明白。能详细一点吗,另外,如果我要在一个扇区写多个字节,该如何改写save代码,或者不同扇区写字节怎么写代码。谢谢你。
回复

使用道具 举报

ID:458247 发表于 2024-4-13 20:40 | 显示全部楼层
samxon 发表于 2024-4-13 19:42
可以指定任意扇区首地址IAP_ADDRESS+n读写字节。这句话不明白。能详细一点吗,另外,如果我要在一个扇区写 ...

1、要写到哪个扇区就调用这个函数擦除对应扇区,IapEraseSector(IAP_ADDRESS);    //扇区擦除
2、要写多个字节的话就用
for(int i=0; i<len; i++)
{
    IapProgramByte(IAP_ADDRESS+i, data[ i]);
}
IAP_ADDRESS为你要写的扇区首地址。data为你要写入的数据存放的数组;
注意事项:跨扇区写数据的话,两个扇区都要擦除才可以
回复

使用道具 举报

ID:213173 发表于 2024-4-14 07:41 | 显示全部楼层
samxon 发表于 2024-4-13 19:42
可以指定任意扇区首地址IAP_ADDRESS+n读写字节。这句话不明白。能详细一点吗,另外,如果我要在一个扇区写 ...

STC片内EEPROM容量随不同型号大小有所不同,除IAP外每个扇区的首地址是固定的。读/写EEPROM的代码要明确指定扇区地址。例如读取第3扇区的第10个字节的地址:IapReadByte(0x0409); 或 IapReadByte(0x0400+9);写EEPROM也同理。在你的代码中IAP_ADDRESS是宏定义地址常量。
回复

使用道具 举报

ID:705846 发表于 2024-4-14 14:07 | 显示全部楼层
wulin 发表于 2024-4-14 07:41
STC片内EEPROM容量随不同型号大小有所不同,除IAP外每个扇区的首地址是固定的。读/写EEPROM的代码要明确 ...

谢谢您,明白了。
回复

使用道具 举报

ID:57657 发表于 2024-4-16 08:36 | 显示全部楼层
由于楼主的程序不完整,缺乏  IapEraseSector、 IapReadByte 函数内的程序以及参数情况。
无法确定 IAP_ADDRESS 是常量还是变量,以及 set1, set2, set3, set4的数据类型,请提供完整的程序才能解答。
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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