STC89C52自带的EEPROM为什么需要擦除呢?直接写入时,就把原来的数据覆盖了呀?

其它的一些EEPROM,例如AT24C02,都不需要擦除的,直接写入,就覆盖原来数据了。... 其它的一些EEPROM,例如AT24C02,都不需要擦除的,直接写入,就覆盖原来数据了。 展开
 我来答
By_奈
推荐于2017-12-16 · TA获得超过295个赞
知道小有建树答主
回答量:165
采纳率:100%
帮助的人:162万
展开全部
因为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模糊了这个概念当卖点多赚钱。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式