单片机12C5A60S2的eeprom地址怎么调用?

addr=0x0400;//0x0400是第几个扇区???IAP_ADDRL=addr;IAP_ADDRH=addr>>8;在官方例程中for(i=0;i<512;i++... addr=0x0400;//0x0400是第几个扇区???
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
在官方例程中
for (i=0; i<512; i++) //编程512字节
{
IapProgramByte(IAP_ADDRESS+i, (BYTE)i);//这里是什么意思???只是写一个扇区吗??
}
void IapProgramByte(WORD addr, BYTE dat)
{
IAP_CONTR = ENABLE_IAP; //使能IAP
IAP_CMD = CMD_PROGRAM; //设置IAP命令
IAP_ADDRL = addr; //设置IAP低地址
IAP_ADDRH = addr >> 8; //设置IAP高地址
IAP_DATA = dat; //写ISP/IAP/EEPROM数据
IAP_TRIG = 0x5a; //写触发命令(0x5a)
IAP_TRIG = 0xa5; //写触发命令(0xa5)
_nop_(); //等待ISP/IAP/EEPROM操作完成
IapIdle();
}
展开
 我来答
0开拓者0
推荐于2016-09-24 · TA获得超过1404个赞
知道小有建树答主
回答量:1333
采纳率:72%
帮助的人:370万
展开全部
擦除的时候才是按扇区,一个扇区512字节。0x0000-0x01FF是第一个扇区,0x0200-0x03FF是第二个扇区,0x0400-0x05FF是第三个扇区

for (i=0; i<512; i++)
{IapProgramByte(IAP_ADDRESS+i, (BYTE)i);//}
这句是连续写了512个字节,也就是一个扇区,只是范例为了演示。实际使用的时候,如果数据不多,就用单字节写函数IapProgramByte(IAP_ADDRESS, BYTE);每次写一个字节,有几个数据就写几次。
更多追问追答
追问
用单字节写函数IapProgramByte(IAP_ADDRESS, BYTE);每次写一个字节。
IAP_ADDRESS=0x0400,BYTE=0xff;//就是把0x0400-0x05FF是第三个扇区一次写入0xff,可以这样理解吗?
追答
当然不是,某个命令 把一个区(512个字节)全写成同一个数有意义吗?IapProgramByte(0x0400, 0xff)是把0xff写在0x0400这个字节里。只有擦除的时候才是按扇区,写是按字节的操作的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式