Valentin Bruchet
/
a_sd_card
sd lecture
eeprom_flash.cpp
- Committer:
- valentinbruchet
- Date:
- 2021-03-16
- Revision:
- 4:3269abcc9c73
- Parent:
- 3:46c0511e25af
- Child:
- 5:66c8b598de04
File content as of revision 4:3269abcc9c73:
#include "mbed.h" #include "eeprom_flash.h" Serial pc(USBTX, USBRX); //Initalise PC serial comms DigitalOut myled(LED1); /* * Must call this first to enable writing */ void enableEEPROMWriting() { HAL_StatusTypeDef status = HAL_FLASH_Unlock(); FLASH_PageErase(EEPROM_START_ADDRESS); // required to re-write CLEAR_BIT(FLASH->CR, FLASH_CR_PER); // Bug fix: bit PER has been set in Flash_PageErase(), must clear it here } void disableEEPROMWriting() { HAL_FLASH_Lock(); } /* * Writing functions * Must call enableEEPROMWriting() first */ HAL_StatusTypeDef writeEEPROMHalfWord(uint32_t address, uint16_t data) { HAL_StatusTypeDef status; address = address + EEPROM_START_ADDRESS; status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, address, data); return status; } /* * Reading functions */ uint16_t readEEPROMHalfWord(uint32_t address) { uint16_t val = 0; address = address + EEPROM_START_ADDRESS; val = *(__IO uint16_t*)address; return val; } //Programme de test int main() { int tab[40]= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40}; int adresse = 0x00; int lecture; pc.baud(9600); /* Ecriture*/ enableEEPROMWriting(); //autorisation d'ecriture dans l'eeprom writeEEPROMHalfWord(adresse, tab[0]); writeEEPROMHalfWord(adresse+2, tab[1]); writeEEPROMHalfWord(adresse+4, tab[2]); writeEEPROMHalfWord(adresse+6, tab[3]); writeEEPROMHalfWord(adresse+8, tab[4]); writeEEPROMHalfWord(adresse+10, tab[5]); writeEEPROMHalfWord(adresse+12, tab[6]); writeEEPROMHalfWord(adresse+14, tab[7]); writeEEPROMHalfWord(adresse+16, tab[8]); writeEEPROMHalfWord(adresse+18, tab[9]); writeEEPROMHalfWord(adresse+20, tab[10]); writeEEPROMHalfWord(adresse+22, tab[11]); writeEEPROMHalfWord(adresse+24, tab[12]); writeEEPROMHalfWord(adresse+26, tab[13]); writeEEPROMHalfWord(adresse+28, tab[14]); writeEEPROMHalfWord(adresse+30, tab[15]); writeEEPROMHalfWord(adresse+32, tab[16]); writeEEPROMHalfWord(adresse+34, tab[17]); writeEEPROMHalfWord(adresse+36, tab[18]); writeEEPROMHalfWord(adresse+38, tab[19]); writeEEPROMHalfWord(adresse+40, tab[20]); writeEEPROMHalfWord(adresse+42, tab[21]); writeEEPROMHalfWord(adresse+44, tab[22]); writeEEPROMHalfWord(adresse+46, tab[23]); writeEEPROMHalfWord(adresse+48, tab[24]); writeEEPROMHalfWord(adresse+50, tab[25]); writeEEPROMHalfWord(adresse+52, tab[26]); writeEEPROMHalfWord(adresse+54, tab[27]); writeEEPROMHalfWord(adresse+56, tab[28]); writeEEPROMHalfWord(adresse+58, tab[29]); writeEEPROMHalfWord(adresse+60, tab[30]); writeEEPROMHalfWord(adresse+62, tab[31]); writeEEPROMHalfWord(adresse+64, tab[32]); writeEEPROMHalfWord(adresse+66, tab[33]); writeEEPROMHalfWord(adresse+68, tab[34]); writeEEPROMHalfWord(adresse+70, tab[35]); writeEEPROMHalfWord(adresse+72, tab[36]); writeEEPROMHalfWord(adresse+74, tab[37]); writeEEPROMHalfWord(adresse+76, tab[38]); writeEEPROMHalfWord(adresse+78, tab[39]); disableEEPROMWriting(); //Interdiction d'ecriture myled=!myled; wait(0.5); myled=!myled; wait(0.5); /*lecture et affichage*/ lecture=readEEPROMHalfWord(adresse); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+2); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+4); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+6); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+8); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+10); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+12); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+14); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+16); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+18); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+20); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+22); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+24); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+26); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+28); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+30); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+32); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+34); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+36); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+38); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+40); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+42); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+44); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+46); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+48); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+50); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+52); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+54); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+56); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+58); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+60); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+62); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+64); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+68); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+70); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+72); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+76); pc.printf ("valeur lue: %d\n\r",lecture); lecture=readEEPROMHalfWord(adresse+78); pc.printf ("valeur lue: %d\n\r",lecture); while(1); }