Je n'arrive pas à écrire ou lire dans l'EEPROM I2C AT24C256. J'utilise la carte de découverte STM32F0 pour lire/écrire dans l'EEPROM. J'utilise la bibliothèque HAL et CUBEMX pour la structure de base. J'ai écrit un petit code pour tester la fonction de lecture et d'écriture. Lors du débogage, les valeurs de Test sont toujours '2' alors qu'elles devraient être '1' si elles réussissent à écrire en mémoire. Ici, il est: -Erreur lors de l'écriture/lecture dans l'EEPROM I2C + Découverte STM32F0
#define ADDR_24LCxx_Write 0x50
#define ADDR_24LCxx_Read 0x50
#define BufferSize 5
uint8_t WriteBuffer[BufferSize],ReadBuffer[BufferSize],Test;
uint16_t i;
I2C_HandleTypeDef hi2c1;
int main(void)
{
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_I2C1_Init();
for(i=0; i<5; i++)
{
WriteBuffer[i]=i;
}
if(HAL_I2C_Mem_Write(&hi2c1, ADDR_24LCxx_Write, 0, I2C_MEMADD_SIZE_8BIT,WriteBuffer,BufferSize, 0x10) == HAL_OK)
{
Test = 1;
}
else
{
Test = 2;
}
HAL_I2C_Mem_Read(&hi2c1, ADDR_24LCxx_Read, 0, I2C_MEMADD_SIZE_8BIT,ReadBuffer,BufferSize, 0x10);
if(memcmp(WriteBuffer,ReadBuffer,BufferSize) == 0) /* check date */
{
Test = 3;
}
else
{
Test = 4;
}
}