Basic example showing how to use a M24LR64 EEPROM with the STM32469I_DISCOVERY board. This EEPROM can be found on the additional ANT7-M24LR-A daughter board.

Dependencies:   BSP_DISCO_F469NI EEPROM_DISCO_F469NI mbed

main.cpp

Committer:
jeromecoutant
Date:
2017-07-05
Revision:
3:b2fc54be1d0e
Parent:
0:05a882783c3f

File content as of revision 3:b2fc54be1d0e:

#include "mbed.h"
#include "EEPROM_DISCO_F469NI.h"

EEPROM_DISCO_F469NI eep;

DigitalOut led_green(LED1);
DigitalOut led_red(LED2);

Serial pc(USBTX, USBRX);

#define BUFFER_SIZE         ((uint32_t)32)
#define WRITE_READ_ADDR     ((uint32_t)0x0000)

int main()
{
    //                                    12345678901234567890123456789012
    uint8_t WriteBuffer[BUFFER_SIZE+1] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ012345";
    uint8_t ReadBuffer[BUFFER_SIZE+1];
    uint16_t bytes_rd;

    pc.printf("\n\nEEPROM demo started\n");
    led_red = 0;

    // Check initialization
    if (eep.Init() != EEPROM_OK) {
        led_red = 1;
        error("Initialization FAILED\n");
    } else {
        pc.printf("Initialization PASSED\n");
    }

    // Write buffer
    if (eep.WriteBuffer(WriteBuffer, WRITE_READ_ADDR, BUFFER_SIZE) != EEPROM_OK) {
        led_red = 1;
        error("Write buffer FAILED\n");
    } else {
        pc.printf("Write buffer PASSED\n");
    }

    // Read buffer
    bytes_rd = BUFFER_SIZE;
    if (eep.ReadBuffer(ReadBuffer, WRITE_READ_ADDR, &bytes_rd) != EEPROM_OK) {
        led_red = 1;
        error("Read buffer FAILED\n");
    } else {
        ReadBuffer[BUFFER_SIZE] = '\0';
        pc.printf("Read buffer PASSED\n");
        pc.printf("Buffer read = [%s]\n", ReadBuffer);
        pc.printf("Bytes read = %d\n", bytes_rd);
    }

    while(1) {
        led_green = !led_green;
        wait(1);
    }
}