STC89C52自带的EEPROM为什么需要擦除呢?直接写入时,就把原来的数据覆盖了呀?
1个回答
展开全部
因为STC的单片机的EEPROM不是真正的EEPROM,它是拿程序储存器用IAP技术分出来的,它的实质是flash。Flash只能把1写0,把1写1。不能把0写1。只有擦除才能把0写成1。所以在写入前最好先擦除。其实如果原来的数据是0xf0,你写0x10是不用擦除的。因为0xf0(1111 0000)到0x10(0001 0000)的过程中只有写0动作。但是你写成0x11(0001 0001)就不行了,因为在最低位有个把0写1的动作。所以为了代码简便(省去判断数据的代码),就规定写入前必须擦除。另外补充一下,Flash全名叫Flash EEPROM Memory,所以也不能说STC是假的EEPROM,只是STC模糊了这个概念当卖点多赚钱。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询