本帖最后由 rjx007 于 2017-7-13 11:31 编辑
在用内部的flash模拟EEPROM时,写数据之前是否必须要执行这一句:FLASH_ErasePage(flash_first_adr);//要擦除页的起始地址 ??
但我的程序中并不是一次性写入数据的,而是在程序执行的过程中分几次写数据,最后关机时还要再次写入几个数据,如果每次都要擦除页面,那岂不是把前面写的数据都清除了吗?如何才能解决这个问题啊?
诚心求教,请高手不吝指教,先谢谢了!
我也曾试过,如果单独写一个flash模拟EEPROM的项目,不用上面的擦除页面的函数,是可以的,但如果把这个移植到我的其他项目中,就必须要这一句,我觉得很奇怪。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
如果你要向某段flash写数据,要先判断这段flash是否写过了,如果没有写过读取到的数据都是0xFFFF,如果写过了就必须先擦除才能写,读写之前都要对flash解锁;FLASH_ErasePage擦除的是整页可能1k,也可能2k;如果担心擦除后面的内容,可以用其他擦除函数
一周热门 更多>