微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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空间,远远超出我们想象和官方公布。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐