Why isn't there any EEPROM in STM32F4 MCUs?

All STM32 MCUs have self-programmable flash memory. If you need to store user settings, you can store them in an area of flash.

ST provides a library to perform EEPROM emulation on the STM32F4. (There are similar libraries for most of their other parts as well.) Even if you don't plan on using that library, their application note explaining how it works may be interesting to read.


EEPROM is very expensive in terms of cell size (leading to a larger die and hence higher cost). Manufacturers started trying to get rid of EEPROM as soon as the first Flash based controllers were released.

Especially when you consider the varying user requirements for the amount of EEPROM, it makes more sense to emulate in Flash, despite the limitations. As opposed to (for example) having a fixed 512 bytes of EEPROM, when one customer is only using 20 bytes, but paying for 512.


If having non-volatile memory which is programmable and erasable to the byte level is important (as opposed to Flash memory, which must have entire sectors/pages erased), have a look at the STM32L0 and STM32L1 series. They have true data EEPROM embedded on it.