Files
bassofono/codice/Core/Src/i2c_eeprom.c

35 lines
1.4 KiB
C
Raw Normal View History

2022-01-17 20:05:23 +01:00
#include <stdint.h>
#include "stm32g4xx_hal.h"
#include "i2c_eeprom.h"
#include "bassofono.h"
// HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)
2022-02-06 17:40:36 +01:00
void i2c_eeprom_scrivi_pagina(uint16_t indirizzo, uint8_t * dati){
2022-01-17 20:05:23 +01:00
while (HAL_I2C_IsDeviceReady(&hi2c1, (uint16_t)(EEPROM_INDIRIZZO_I2C), 3, 100) != HAL_OK) { }
2022-02-06 17:40:36 +01:00
HAL_I2C_Mem_Write(&hi2c1, (uint16_t)(EEPROM_INDIRIZZO_I2C), indirizzo, I2C_MEMADD_SIZE_16BIT, dati, EEPROM_BYTES_PER_PAGINA, 100);
2022-01-17 20:05:23 +01:00
}
2022-02-06 17:40:36 +01:00
uint8_t i2c_eeprom_leggi_pagina(uint16_t indirizzo, uint8_t * dati){
HAL_StatusTypeDef status = HAL_OK;
2022-01-17 20:05:23 +01:00
while (HAL_I2C_IsDeviceReady(&hi2c1, (uint16_t)(EEPROM_INDIRIZZO_I2C), 3, 100) != HAL_OK) { }
2022-02-06 17:40:36 +01:00
status = HAL_I2C_Mem_Read(&hi2c1, (uint16_t)(EEPROM_INDIRIZZO_I2C), indirizzo, I2C_MEMADD_SIZE_8BIT, dati, EEPROM_BYTES_PER_PAGINA, 100);
2022-01-17 20:05:23 +01:00
return status;
}
void salva_canale(uint8_t numero){
2022-02-06 17:40:36 +01:00
i2c_eeprom_scrivi_pagina((EEPROM_OFFSET_CANALE + numero) * EEPROM_BYTES_PER_PAGINA, (uint8_t)&canale);
2022-01-17 20:05:23 +01:00
}
void leggi_canale(uint8_t numero){
2022-02-06 17:40:36 +01:00
i2c_eeprom_leggi_pagina((EEPROM_OFFSET_CANALE + numero) * EEPROM_BYTES_PER_PAGINA, (uint8_t)&canale);
2022-01-17 20:05:23 +01:00
}
void salva_stato(void){
2022-02-06 17:40:36 +01:00
i2c_eeprom_scrivi_pagina(EEPROM_INDIRIZZO_STATO * EEPROM_BYTES_PER_PAGINA, (uint8_t)&stato);
2022-01-17 20:05:23 +01:00
}
void leggi_stato(void){
2022-02-06 17:40:36 +01:00
i2c_eeprom_leggi_pagina(EEPROM_INDIRIZZO_STATO * EEPROM_BYTES_PER_PAGINA, (uint8_t)&stato);
2022-01-17 20:05:23 +01:00
}