#include <inttypes.h>
/*
void Minimal_EEPROM_Unlock(void)
{
if((FLASH->PECR & FLASH_PECR_PELOCK) != RESET)
{
// Unlocking the Data memory and FLASH_PECR register access
FLASH->PEKEYR = FLASH_PEKEY1;
FLASH->PEKEYR = FLASH_PEKEY2;
}
}
void Minimal_EEPROM_Lock(void)
{
// Set the PELOCK Bit to lock the data memory and FLASH_PECR register access
FLASH->PECR |= FLASH_PECR_PELOCK;
}
FLASH_Status Minimal_FLASH_GetStatus(void)
{
FLASH_Status FLASHstatus = FLASH_COMPLETE;
if((FLASH->SR & FLASH_FLAG_BSY) == FLASH_FLAG_BSY)
{
FLASHstatus = FLASH_BUSY;
}
else
{
if((FLASH->SR & (uint32_t)FLASH_FLAG_WRPERR)!= (uint32_t)0x00)
{
FLASHstatus = FLASH_ERROR_WRP;
}
else
{
if((FLASH->SR & (uint32_t)0x1E00) != (uint32_t)0x00)
{
FLASHstatus = FLASH_ERROR_PROGRAM;
}
else
{
FLASHstatus = FLASH_COMPLETE;
}
}
}
// Return the FLASH Status
return FLASHstatus;
}
FLASH_Status Minimal_FLASH_WaitForLastOperation(uint32_t Timeout)
{
__IO FLASH_Status status = FLASH_COMPLETE;
// Check for the FLASH Status
status = Minimal_FLASH_GetStatus();
// Wait for a FLASH operation to complete or a TIMEOUT to occur
while((status == FLASH_BUSY) && (Timeout != 0x00))
{
status = Minimal_FLASH_GetStatus();
Timeout--;
}
if(Timeout == 0x00 )
{
status = FLASH_TIMEOUT;
}
// Return the operation status
return status;
}
void Minimal_EEPROM_ProgramWord(uint32_t Address, uint32_t Data)
{
// Wait for last operation to be completed
FLASH_Status status = FLASH_COMPLETE;
status = Minimal_FLASH_WaitForLastOperation(FLASH_ER_PRG_TIMEOUT);
if(status == FLASH_COMPLETE)
{
*(__IO uint32_t *)Address = Data;
// Wait for last operation to be completed
status = Minimal_FLASH_WaitForLastOperation(FLASH_ER_PRG_TIMEOUT);
}
// Return the Write Status
return status;
}
*/