STM8L MCU incorporado 1K bytes de EEPROM, muy fácil de usar.
dirección de EEPROM es:
1.6.1 firmware utilizando la biblioteca
vacío EEPROM_Write_Byte (uint16_t Dir, uint8_t los datos)
{
asm ( "SIM"); // Se cierra la interrupción
FLASH_Unlock (FLASH_MemType_Data);
// el tiempo (FLASH_IAPSR_DUL!); // si DUL no está establecido, lo que indica desbloqueo sin éxito, es mejor para unirse determinación de tiempo de espera
// FLASH_EraseByte (EEPROM_STARTADDR + Dir); // borrado de escritura
// FLASH_WaitForLastOperation (FLASH_MemType_Data); // espera hasta que la operación
FLASH_ProgramByte (Addr + EEPROM_STARTADDR, los datos);
FLASH_WaitForLastOperation (FLASH_MemType_Data);
FLASH_Lock (FLASH_MemType_Data);
ASM ( "RIM"); // abrir la interrupción
}
// Nota que la escritura de 4 bytes se debe escribir en un múltiplo
eeprom_write_word vacío a (uint16_t Dir, el uint32_t datos)
{
ASM ( "SIM"); // interrupción discapacitados
FLASH_Unlock (FLASH_MemType_Data);
// FLASH_EraseByte (EEPROM_STARTADDR Addr +) ; // borrado de escritura
// FLASH_WaitForLastOperation (FLASH_MemType_Data); // espera hasta que la operación
// FLASH_EraseByte (EEPROM_STARTADDR + Dir + 1 ); // borrado de escritura
// FLASH_WaitForLastOperation (FLASH_MemType_Data); // espera que la operación completa
// FLASH_EraseByte (EEPROM_STARTADDR + Addr + 2 ); // borrado de escritura
// FLASH_WaitForLastOperation (FLASH_MemType_Data); // espera hasta que la operación
// FLASH_EraseByte (EEPROM_STARTADDR + Addr + 3 ); // borrado de escritura
// FLASH_WaitForLastOperation (FLASH_MemType_Data); // espera hasta que la operación
FLASH_ProgramWord (Addr + EEPROM_STARTADDR, los datos);
FLASH_WaitForLastOperation (FLASH_MemType_Data); // espera que la operación completa
FLASH_Lock (FLASH_MemType_Data);
asm ( "RIM"); // abrir la interrupción
}
uint8_t EEPROM_Read_Byte (uint16_t Addr)
{
uint8_t res;
res = FLASH_ReadByte (EEPROM_STARTADDR + Addr);
res regresar;
}
Antes de escribir no tiene que borrar para borrar, el funcionamiento de bytes directa, fácil de no hacer lo