Aa error occurs when the internal EEPROM(0x08080000) is written to 0x00
The following test code, when writing pTemp[3] to EEPROM, that is, when writing 0x00 to internal EEPROM(FLASH 0x08080000), an error will occur. Calling library function DATA_EEPROM_ProgramByte will have the same error. What causes it? Will it be due to insufficient voltage or grounding?
void EEPROM_WriteBytes(uint32_t Address, uint8_t *Buffer, uint16_t Length)
{
uint32_t i = 0;
//uint8_t *pTemp = (uint8_t *)Buffer;
uint8_t pTemp[5] = {0x01, 0x02, 0x00, 0x04, 0x00};
uint8_t *wAddr = (uint8_t *)(Address + EEPROM_BASE_ADDR);
uint8_t value = 0;
if(Length >= EEPROM_BYTE_SIZE)
{
Length = EEPROM_BYTE_SIZE;
}
__disable_irq();
DATA_EEPROM_Unlock();
for(i = 0; i < 5; i++)
{
value = *(pTemp + i);
*(__IO uint8_t *)(wAddr + i) = value;
//DATA_EEPROM_ProgramByte(wAddr + i, value);
}
DATA_EEPROM_Lock();
__enable_irq();
}
