单片机内部EEPROM写之前要擦除吗?擦除的不是单个字节,把别的也擦除了怎么办?

 我来答
hyhv126
2018-03-06
知道答主
回答量:38
采纳率:0%
帮助的人:32.9万
展开全部
看单片机PDF,STC的写之前一定要擦除,因为要为空时才可对其编程,写(因为只有扇区擦除才能把0变为1,若这个扇区原本有0的话你不擦出就不是覆盖了而是混乱!!!)。一个扇区可以写很多数据的,但是在每写一个数据之前要把其他的数据都先读出来保存一份到RAM,(定义几个变量,比如,a=eeprom_read(0x4000); b=eeprom_read(0x4001))读出来后执行 eeprom_eares(0x4000);也就是擦除这个扇区,等擦除操作执行完后和新数据一起写入这个扇区,如下:
eeprom_write(0x4000,a);//读出来的数据写回去
eeprom_write(0x4001,b);
eeprom_write(0x4002,c);
这样c就和a,b一起写到这个扇区了,写a的时候同样要把b,c读出来,写b的时候要把a,c读出来。
很多单片机有64个扇区,够用的话尽量一个扇区写一个数据,这样程序写起来比较方便,
其他类型的单片机没试验不知道,外部eeprom情况又不一样
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式