STC12LE5052的EEPROM使用

STC12LE5052的EEPROM使用

关于STC12LE5052的EEPROM,官方资料只有简单一句话:所有FLASH空间均可作EEPROM修改。

写一段代码,生成HEX后,显示CODE=2437,扫描 0x0000开始的10个扇区,发现前2438个字节都是有数据的,其它是0或FF.  说明STC12LE5052代码从 0x0000处开始存储。其它空余空间可作EEPROM来使用。那它的空间顶部在哪儿? 下面用代码证明:

 

    for (i=512*5; i<512*200; i+=512)           //前面的5个扇区不操作保留为代码空间

    {

        IapEraseSector(i) ;  先清除第5到第200个扇区(假定有200个扇区,哈)

    }

    for (i=512*5; i<512*200; i++)           

    {  //对这些扇区进行写操作,i为增变量,保证相邻不相同

        IapProgramByte(IAP_ADDRESS+i, (BYTE)i);

    }

    for (i=512*5; i<512*200; i++)           //Check whether all sector data is FF

    {

        theByte = IapReadByte(IAP_ADDRESS+i) ;

       //TxData(theByte); 

      if(theByte==oldByte && theByte==0xFF)

      {  

          TxData(i);    TxData(i>>8);

         break;

      }

      oldByte  =theByte;

    }

   最后,返回到串口的数据是0070. 这就意味着EEPROM可存储0x7000个字节。STC12LE5052包括代码,最大扇区数为 0x7000/512=56. 存储空间为28K。为了验证0-55扇区的有效性,可用如下代码测试:

    for (i=0; i<512*57; i++)           

    { 

         theByte = IapReadByte(i) ;

         TxData(theByte);

    }

发现最后512个字节,全是重复的FF。这就是stc12le5052的真实EEPROM空间,远远超出我们想象和官方公布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值