24C02是一个外部的断电存储数据的芯片,stm32单片机通过接口把数据读写入24C02中,
stm32单片机自身也有Flash可以断电保存数据, 24C02 是EEPROM,两种存储擦写方式不同,Flash写入1时要先按整页擦除,而EEPROM不用擦除可以直接写入1和0,但EEPROM成本更高。
如果数据不多,那可以用STM32的BKP寄存器保存数据啊,BKP有一些寄存器和RTC都用备份电池供电,数据写入其中是不会丢失的。
不保存,掉电后数据都消失了。除非给RTC加一个后备电源,如纽扣电池等。Flash里的数据可以掉电保存,其他存储器件都是掉电不保存。
stm32有一个bkp寄存器,可以在较低工作电压电流下保存信息,我的开发板上就是这样子的,有一个通过usb供电的5V电源,外加一块纽扣电池,纽扣电池就可以供给bkp寄存器存储信息,在没有5V供电的时候也可以工作。stm32下载程序到flash里的时候也是断电不丢失的。我不太清楚你是不是这个意思?关于bkp你可以去看一下他的固件库给的函数~很简单的,我刚刚用bkp做了个电子钟玩玩儿,时间就存在bkp中,上电后可以用液晶显示,掉电时依靠bkp保存时间参数。
写入前,先要确保该扇区是已经擦除的,STM32内部FLASH都是按扇区擦除的,不同型号,扇区大小不同,有些型号,不同扇区的大小也不一样,看数据手册。
擦除后写入,然后可以上锁。
但一般不建议用内部FLASH,可以外挂一块FLASH。
STM32程序一般放在Flash中,数据放在SRAM中!掉电一定会丢失的。不过STM32可以操作Flash,所以你也可以把数据放到Flash中。这样数据就不会丢失了
本文标签:stm32用电容掉电存储flash