2016-05-23 16 views
4

Ich versuche, EEPROM auf Stm32f0 zu emulieren. Es gibt eine application note von STM zur Verfügung gestellt.EEPROM-Emulation auf stm32 mit HAL-Treibern

In der Probe main.c,

int main(void) 
{ 
    /*!< At this stage the microcontroller clock setting is already configured, 
     this is done through SystemInit() function which is called from startup 
     file (startup_stm32f0xx.s) before to branch to application main. 
     To reconfigure the default setting of SystemInit() function, refer to 
     system_stm32f0xx.c file 
    */ 
    /* Unlock the Flash Program Erase controller */ 
    FLASH_Unlock(); 

    /* EEPROM Init */ 
    EE_Init(); 

/* --- Store successively many values of the three variables in the EEPROM ---*/ 
    /* Store 0x1000 values of Variable1 in EEPROM */ 
    for (VarValue = 1; VarValue <= 0x64; VarValue++) 
    { 
    EE_WriteVariable(VirtAddVarTab[0], VarValue); 
    } 

    /* read the last stored variables data*/ 
    EE_ReadVariable(VirtAddVarTab[0], &VarDataTab[0]); 


    /* Store 0x2000 values of Variable2 in EEPROM */ 
    for (VarValue = 1; VarValue <= 0xC8; VarValue++) 
    { 
    EE_WriteVariable(VirtAddVarTab[1], VarValue); 
    } 

    /* read the last stored variables data*/ 
    EE_ReadVariable(VirtAddVarTab[0], &VarDataTab[0]); 
    EE_ReadVariable(VirtAddVarTab[1], &VarDataTab[1]); 


    /* Store 0x3000 values of Variable3 in EEPROM */ 
    for (VarValue = 1; VarValue <= 0x1C2; VarValue++) 
    { 
    EE_WriteVariable(VirtAddVarTab[2], VarValue); 
    } 

    /* read the last stored variables data*/ 
    EE_ReadVariable(VirtAddVarTab[0], &VarDataTab[0]); 
    EE_ReadVariable(VirtAddVarTab[1], &VarDataTab[1]); 
    EE_ReadVariable(VirtAddVarTab[2], &VarDataTab[2]); 

    while (1); 
} 

Flash_Unlock() ist eine Funktion in STM Standard-Peripherie-Bibliothek verwendet. Ich verwende jedoch CubeMX, das automatisch Code generiert, der HAL-Treiber verwendet. Ist es erforderlich, dass Flash_Unlock() aufgerufen wird, bevor man die EEPROM_emulation-APIs verwenden kann? Wenn ja, wie lautet das HAL-Äquivalent für den Aufruf Flash_Unlock()? Gibt es spezielle Konfigurationseinstellungen für CubeMX, um die EEPROM-Emulation zu verwenden?

Antwort

6

ST Microelectronics lieferte Beispielcode mit HAL-Treibern. Das Problem ist ihre Dokumentation ist überall und googling möglicherweise nicht die richtige Seite landen.

Dies ist das richtige document für Sie.

Suche nach "EEPROM_Emulation". Sie werden feststellen, dass der Beispielcode unter den Firmware-Beispielen von NUCLEO-F091RC bereitgestellt wird. Der Beispielcode sollte Ihre Fragen beantworten.

+0

Googling diese Hallo & Lo, aber nie realisiert, ich habe es alles in CubeMX Repo gehabt .. Vielen Dank. –